Integer类型的自动装箱和拆箱功能和数值的范围无关,只要不超出int值的范围,都会自动装箱成Integer类型。
Lz说的173大于127,这里估计你把jvm自动生成的常用数值和自动装箱拆箱功能混淆了。
在-128到127的范围内,因为考虑到这些值在程序中用到的概率比较大,为了优化内存使用,这些值在程序一开始就存在于常量池中。
举例说明:
Integer a1 = new Integer(127);
Integer a2 = new Integer(127);
这里a1和a2都指向同一片内存区域。
Integer a3 = new Integer(128);
Integer a4 = new Integer(128);
这里a3和a4指向不同的内存区域
建议LZ再回去好好看视频,然后自己动手实验一下。 |