gpt4 book ai didi

Java 对某些对象使用相同的引用,但有时它会创建 2 个实例

转载 作者:行者123 更新时间:2023-12-04 09:37:33 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Why does the behavior of the Integer constant pool change at 127?

(4 个回答)


去年关闭。



public class Question2 {


public static void main(String[] args) {
Integer i1 = 1000;
Integer i2 = 1000;
Integer i3 = 10;
Integer i4 = 10;
System.out.println(i1 == i2);
System.out.println(i3 == i4);

}
}
输出是
false
true
我明白输出是如何发生的问题是为什么它会这样发生
i1 和 i2 是 2 个对象,它们的引用不同,因此输出 false
但 i3 和 i4 使用相同的引用
为什么 i1 和 i2 不会发生为什么它不使用相同的引用

最佳答案

Integer 使用 Integer 缓存来存储从 -128 到 +127 的值。如果 == 运算符用于检查 -128 到 127 之间的任何值,则返回 true。除了这些值,它返回 false
如果你尝试过这样的,

   Integer i1 = 1000;
Integer i2 = 1000;
Integer i3 = new Integer(10);
Integer i4 = new Integer(10);
System.out.println(i1 == i2);
System.out.println(i3 == i4);
输出:
  false
false

关于Java 对某些对象使用相同的引用,但有时它会创建 2 个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62495353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com