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 的整数,会将其缓存起来。当再次使用该整数时,会直接从缓存中取出,而不是重新创建对象。因此,i1i2 指向的是同一个对象,比较时返回 true

而对于大于 127 的整数,则不会被缓存。每次使用都会新建对象,所以 i3i4 指向的是不同的对象,比较时返回 false

总结:

Java Integer 缓存机制是为了提高性能,但需要注意的是,对于大于 127 的整数,比较时应使用 equals() 方法,以确保比较的是值而非引用。

Java Integer 缓存机制:详解 127 和 128 的比较结果

原文地址: https://www.cveoy.top/t/topic/nqtH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录