错题集3

  package Errorlist;

  public class ErrorTest3 {
  }
  21-------------------------------------------------
  

class Res{
  private String name;
  private String sex;
  private boolean flag = false;
  public synchronized void set(String name,String sex){
  if(flag)
  try{this.wait();}catch(Exception e){}
  this.name = name;
  this.sex = sex;
  flag = true;
  this.notify();//这里唤醒的是谁?this指的是谁?为什么打印的结果男女可以交替进行的??
  这里this指的是当前线程,那么this指的也是当前的对象,但是这里wait方法要在循环里才行,所以使用if语句判断肯定会出现安全问题。因为定义了标记,标记是交替让线程执行,所以可以交替打印
  }
  public synchronized void out(){
  if(!flag)
  try{this.wait();}catch(Exception e){}
  System.out.println(name+"……"+sex);
  flag = false;
  this.notify();
  }
  }
  class Input implements Runnable{
  private Res r ;
  Input(Res r){
  this.r = r;
  }
  public void run(){
  int x = 0;
  while(true){
  if(x==0)
  r.set("mike","man");
  else
  r.set("丽丽","女女女女女");
  x = (x+1)%2;
  }
  }
  }
  class Output implements Runnable{
  private Res r ;
  Output(Res r){
  this.r = r;
  }
  public void run(){
  while(true){
  r.out();
  }
  }
  }
  //多线程通信,多个线程同时操作同个资源
  public static void method_3() {
  Res r = new Res();
  new Thread(new Input(r)).start();
  new Thread(new Output(r)).start();
  Input in = new Input(r);
  Output out = new Output(r);
  Thread t1 = new Thread(in);
  Thread t2 = new Thread(out);
  t1.start();
  t2.start();
  }
  22----------------------------------------------------------
  Thread.yield()这个方法是什么??
  暂停当前正在执行的线程对象,并执行其他线程
  23-----------------------------------------------------------
  多线程中的生产者消费者例子,如何避免还没有生产出来就消费掉的情况?在唤醒线程的时候用到了notifyAll方法,那么这里都唤醒了哪些线程??
  使用wait方法,并将其放在while循环中。这个notifyAll将线程池中所有冻结状态的线程都唤醒了,包括本方生产者线程以及消费者线程
  24------------------------------------------------------------
  String s1 = "abc";//s1是一个类类型变量, "abc"是一个对象。
  //字符串最大特点:一旦被初始化就不可以被改变。
  String s2 = new String("abc");
  //s1和s2有什么区别?
  //s1在内存中有一个对象。
  //s2在内存中有两个对象。
  这到底是什么意思?
  String类的方法,int codePointAt,得到指定位置字符的asic码    String concat,将指定字符串链接到末尾,返回新的字符串
  如果我想要拿到任意一个字符的Unicode值,要怎么做?
  对于之前的问题,老师带着做就是为了要熟悉底层的原理,了解掌握思想,但是既然已经全部都看完一遍了,那么再处理老问题的时候就要善于去运用工具包的方法,确切来说是必须要用工具包的方法才行,学习知识的目的就是要运用于实践当中,来节约时间,到达新的高度,学习知识先是理解,然后是运用,原本要敲半个小时的代码,结果查一下文档,两个函数就搞定了
  字符串的大小是怎么比较的??用int compareTo方法,按照字典顺序比较,返回的第一个不同字符是asic值的差,如na和b的返回值,n和b的返回值是相同的。 boolean equals
  25-------------------------------------------------------------
  不是说调用属性可以person.name和person[name]的吗,怎么"abc".length可以,"abc"[name]怎么不可以了?因为格式错了,要写成"abc"["length"]
  26-------------------------------------------------------------
  在java中和DHTML中分别获取目录,并且包含层级关系。首先将列表打印出来之后,只需要在打印语句上动态添加特殊符号就可以了,符号的长度应该是随着迭代的次数而变化的,所以在方法外部定义一个level用于计数,并定义一个容器用来存符号,迭代一次那么level就自增一次。
  27-------------------------------------------------------------
  

  
  
  
  无标题文档
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  好友列表   
  好友
  好友
  好友
  
  
  好友列表   
  好友
  好友
  好友
  
  
  好友列表   
  好友
  好友
  好友
  
  
  好友列表   
  好友
  好友
  好友
  
  
     
  为什么展开的效果不对,点上去结果把div隐藏掉了,我需要的是把好友列表隐藏了。
  两个问题,在判断是否打开时用的是divNode,你那里写错了。然后是判断的时候,如果当前的div是空那么就关,否则就开,而你的逻辑相反了
  28------------------------------------------------------------------------------
class Base{
  private int i = 2;
  Base(){
  System.out.println("base:"+this.i);  //
  this.display();//这个this的问题相当大,他指代的是父类对象的引用才对,
  //            this.show();
  }
  public void display(){
  System.out.println("base display:"+this.i); // 在super()时,这句话未被执行,看打印的结果就知道执行了子类的display
  }
  }
  class Derived extends Base {
  public  int i = 22;//这里加上static修饰符的话
  public Derived(){
  super();
  i = 222;        //
  }
  public void display(){
  System.out.println("derived display:"+i);
  }
  //     public void show(){
  //     System.out.println("show…run");
  //     }
  }
  public class Test3 {
  public static void main(String[] args){
  new Derived().display();
  Test3 test =new Test3();
  }
  public static void show(){
  }
  
  //问:打印结果?
  base:2
  derived display:0
  derived display:222
  29--------------------------------------------------------------------
 int a = 0, b = 3;
  a = b++ + b++ + b-- - --b;
  // 我是这样想的,b的运算结果:(1)b=3+1 + (2)b=4+1 + (3)b=5-1 - (4)b=-1+4 ;
  //第一个b++在运算的时候b=3参与运算,然后自增为b=4,到第二个b++的时候b=4参与运算,然后自增为b=5,
  //到b--的时候b=5参与运算,然后自减为b=4,到--b的时候,b=4先自减为b=3然后参与运算
  //所以a=3+4+5-3   -->a=9
  System.out.println("a=" + a + ";b=" + b)
  30-----------------------------------------------------------------------
  javascript中创建表格的例子当中,如果不指定表格样式的情况下,就会出现一个非常小的表格,其中的单元格完全是体现不出来的,更不要说其中的内容

你可能感兴趣的:(错题集3)