Integer i1 = 128; Integer i2 = 128; System.out.println(i1==i2); 为什么输出false?

这是因为在Java中,对于Integer类型的数值,如果数值在-128到127之间,会被缓存起来以节省内存。当两个Integer类型的数值在这个范围内时,它们会指向同一个对象,因此比较时会返回true。但是,当数值超过了这个范围,就不会被缓存,每个数值会被作为一个独立的对象处理,因此比较时会返回false。

在这种情况下,应该使用equals()方法来比较两个Integer类型的数值。

Java Integer 比较:== 与 equals() 的区别

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

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