为什么上面输出true,下面输出false(语言-java)

img


为什么输出的时候上面那个是true,下面那个是false?求解求解为什么

-128-127会被Integer类缓存

【以下回答由 GPT 生成】

代码的输出结果如下:

true
false

解释: Java中的Integer是一个包装类,用于将基本数据类型int封装成一个对象。对于整数范围在-128到127之间的整数,会进行缓存,即使创建多个对象,它们引用的实际是同一个对象。而超出这个范围的整数,则会创建不同的对象。

在上面的代码中,i1和i2都是100,而且在-128到127之间,所以它们引用的是同一个对象,所以i1 == i2返回true。

而i3和i4都是200,超出了缓存范围,所以创建了两个不同的对象,即使它们的值相同,但引用的实际是不同的对象,所以i3 == i4返回false。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^