日期:2014-05-20 浏览次数:20986 次
public class Test{
public static void main(String[] args){
Integer a = 100 ;
Integer b = 100 ;
Integer a2 = 200;
Integer b2 = 200;
System.out.println (a==b);
System.out.println (a2==b2);
}
}
Integer a = 100 ;
Integer b = 100 ;
Integer a2 = 200 ;
Integer b2 = 200 ;
Integer a3 = new Integer(100) ;
Integer b3 = new Integer(100) ;
System.out.println (a==b);
System.out.println (a2==b2);
System.out.println(a3==b3);
------解决方案--------------------
我是来学习地!!!
------解决方案--------------------
关键是两段代码,一个是valueOf方法实现boxing(可以从字节码中看出来调用了这个方法)
public static Integer valueOf(int i) {
final int offset = 128;
if (i >= -128 && i <= 127) { // must cache
return IntegerCache.cache[i + offset];
}
return new Integer(i);
}
------解决方案--------------------
学习了
------解决方案--------------------
public class Test {
public static void main(String[] args) {
Integer a = 100; //自动包装(或叫自动装箱)
Integer b = 100; //编译器会将其处理成 Integer b = Integer.valueOf(100);
Integer a2 = 200;
Integer b2 = 200;
System.out.println (a == b);
System.out.println (a2 == b2);
}
}
------解决方案--------------------
哦,看到楼上的,明白了,学习了
------解决方案--------------------