Integer类型的缓存是[-128,127],对于–128到127(默认是127)之间的值,Integer.valueOf(int i) 返回的是缓存的Integer对象(并不是新建对象),变量所指向的是同一个对象。
Integer a1 = 128;
Integer a2 = 128;
System.out.println(a1==a2); //输出结果为false。
Integer b1 = 127;
Integer b2 = 127;
System.out.println(b1==b2); //输出结果为true。
Java Integer 缓存与对象比较
这篇博客探讨了Java中Integer对象的缓存机制。当在-128到127范围内使用Integer.valueOf()时,会复用已存在的对象。因此,Integer a1 = 128; Integer a2 = 128; a1 == a2 的结果为false,因为它们不指向同一缓存对象。然而,对于Integer b1 = 127; Integer b2 = 127; b1 == b2 的结果为true,因为127在缓存范围内。
797

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



