直接看代码:
Integer i1 = 127;
Integer i2 = 127;
Integer i3 = 128;
Integer i4 = 128;
System.out.println(i1 == i2);
System.out.println(i3 == i4);
System.out.println(i3 == 128);
---------------------结果------------------
true
false
true
原因:在java中将int转到Integer时调用的是Integer.valueof(int i)方法进行转换,而该方法里使用了缓存,缓存里存储了value为0-127的Integer对象。当参数值在该范围时,返回缓存对象。
本文通过示例代码展示了Java中Integer对象在特定数值范围内利用缓存机制提高性能的现象。当Integer对象的值位于-128至127之间时,会复用已有的对象而非创建新的对象。
484

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



