运行代码:
Integer a=1000,b=1000;
System.out.println(a==b); 返回false
Integer d=100,c=100;
System.out.println(c==d);返回true
原因是因为:Integer的内部是这样的
Integer i=Integer.valueOf(100);
valuof()函数的值得缓存在-128-127之间
所以c和d指向的是同一个对象,a和b超出了缓存不是同一个对象。
本文探讨了 Java 中 Integer 对象的缓存机制。当 Integer 值在-128到127之间时,valueOf 方法会复用已存在的对象,超出此范围则创建新对象。文章通过示例代码展示了这一特性。
运行代码:
Integer a=1000,b=1000;
System.out.println(a==b); 返回false
Integer d=100,c=100;
System.out.println(c==d);返回true
原因是因为:Integer的内部是这样的
Integer i=Integer.valueOf(100);
valuof()函数的值得缓存在-128-127之间
所以c和d指向的是同一个对象,a和b超出了缓存不是同一个对象。

被折叠的 条评论
为什么被折叠?