gpt4 book ai didi

java - 整数和双差

转载 作者:行者123 更新时间:2023-11-30 06:20:50 25 4
gpt4 key购买 nike

提前致谢...请解释为什么会发生以下情况:

Integer i1 = 6;
Integer i2 = 6;

(i1 == i2) 将返回 true。

同时

Double d1 = 6.5;
Double d2 = 6.5;

(d1 == d2) 将返回 false。

这是为什么呢?在这两种情况下都只会创建一个对象,但它们的行为仍然不同。使用 equals 方法会更好,但我对这种行为感到惊讶,只是想知道。

最佳答案

您正在通过引用比较 Integer(大写 I)对象,这不是在 java 中比较对象的“正确”方法。

对一些整数的引用被缓存以优化性能。这就是为什么通过引用比较某些 Integer(大写 I)对象似乎在 Java 中的少数情况下有效。

这不是 Java 开发人员应该依赖或使用的行为,因为它不可靠,可能会更改,并使代码更难以理解。

关于java - 整数和双差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21290664/

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