不可变的wrapper类型 —— java古怪代码(1)

 

Java代码

public class AutoboxTester {  
  
    public static void main(String[] args) {  
        Integer i1 = 127;  
        Integer i2 = 127;  
          
        System.out.println(i1 == i2);  
          
        Integer i3 = 128;  
        Integer i4 = 128;  
          
        System.out.println(i3 == i4);  
          
    }  
      
}  

返回的结果:

运行结果

true  
false  

在java中从-127到127之间的值是不可变的wrapper类型,jvm会对 i1 与 i2 使用同样的对象实例和同样的内存地址,所以,== 运算的结果是true。