Java Integer 缓存机制:详解 127 和 128 的比较结果
Java Integer 缓存机制:详解 127 和 128 的比较结果
以下代码执行完毕后,在控制台输出的结果是:
public class Test02 {
public static void main(String[] args) {
Integer i1=127;
Integer i2=127;
System.out.println(i1==i2);
Integer i3=128;
Integer i4=128;
System.out.println(i3==i4);
}
}
输出结果为:
true false
原因:
Java 中,对于小于等于 127 的整数,会将其缓存起来。当再次使用该整数时,会直接从缓存中取出,而不是重新创建对象。因此,i1 和 i2 指向的是同一个对象,比较时返回 true。
而对于大于 127 的整数,则不会被缓存。每次使用都会新建对象,所以 i3 和 i4 指向的是不同的对象,比较时返回 false。
总结:
Java Integer 缓存机制是为了提高性能,但需要注意的是,对于大于 127 的整数,比较时应使用 equals() 方法,以确保比较的是值而非引用。
原文地址: https://www.cveoy.top/t/topic/nqtH 著作权归作者所有。请勿转载和采集!