gpt4 book ai didi

Java "abc"== "abc"操作

转载 作者:行者123 更新时间:2023-12-01 11:02:04 28 4
gpt4 key购买 nike

当我们这样做时:

String a = new String("abc");
String b = new String ("abc");

并执行 a == b它返回 false 因为它们是 2 个不同的对象。
但是当我们有了这个:

String c = "abc";
String d = "abc";

我们做了 c == d它返回true。这是为什么?它也应该返回 false 吗?为什么 == 运算符在这种情况下表现为 .equals() 方法?

最佳答案

发生这种情况是因为 Java 使用所谓的 Stringpool 并尝试重用旧的 String-Literals 以节省一些内存。但如果你说“新字符串”,你总是根据文字创建一个新对象。请参阅:here如果您想确保对象相等,我建议您始终使用 Objects.equals(a, b) (如果您确定对象不为空,则对对象本身调用 equal)

关于Java "abc"== "abc"操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33263430/

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