第一个是两个基本类型的比较,
第二个是两个对象比较;(注意这里new了两个,如果两个reference指向一个对象两个都是true)
第三个因为wrap class override equals方法,所以第一个为true;
第四个和第二个相同;在没有override equals()的时候equals和==是一样的;

解决方案 »

  1.   

    System.out.println(a0==b0 );因为a0和b0是基本类型,所以比较的是内容。
    System.out.println(a1==b1 );因为a1和b1是两个数组名,所以比较的指引,也就是,它们是不是指向同一块内存区。
      

  2.   

    我认同witboy的看法
    第一个是两个基本类型的比较,
    第二个是两个对象比较;(这里new了两个,如果两个reference指向一个对象两个都是true)
    第三个因为wrap class override equals方法,所以第一个为true;
    第四个和第二个相同;在没有override equals()的时候equals和==是一样的;
      

  3.   

    在没有实现equals的情况下,程序默认跟“=”一样,比较内存地址。
    String类已经实现了,所以它的equals是比较内容。而自己实现的类或者直接就是object的话,必须实现equals,否则就象上面程序结果一样。