日期:2014-05-20 浏览次数:20748 次
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); } }
------解决方案--------------------
哦,看到楼上的,明白了,学习了
------解决方案--------------------