在自动装箱时,[-127,127]之间的值被装箱成Integer对象后,会存在内存中被重用。如果数值超过了这个范围,被装箱后的Interger对象即使所含基本数据值相同,也不会被重用,即每次装箱时都会新建一个Integer对象
例如:
Integer i1 = 127;
Integer i2 = 127;
对象引用i1和i2会参考至内存中的同一个对象( i1 == 12 )
而对于:
Integer i1 = 128;
Integer i2 = 128;
i1和i2则参考的不是同一个对象(i1 != i2)
注1:" == " 不仅表示两个基本数据类型的值是否相等,也表示两个引用所参考的对象是否为同一对象。若要比较两个对象是否相同,可以使用对象的equals( )方法。
例如:
Integer i1 = 127;
Integer i2 = 127;
对象引用i1和i2会参考至内存中的同一个对象( i1 == 12 )
而对于:
Integer i1 = 128;
Integer i2 = 128;
i1和i2则参考的不是同一个对象(i1 != i2)
注1:" == " 不仅表示两个基本数据类型的值是否相等,也表示两个引用所参考的对象是否为同一对象。若要比较两个对象是否相同,可以使用对象的equals( )方法。