gpt4 book ai didi

java - 字符串不变性,小测验

转载 作者:行者123 更新时间:2023-12-01 17:19:36 25 4
gpt4 key购买 nike

关于字符串不变性有很多问题,但我还没有找到为什么会发生以下情况的答案:

1) "TEST".equals("TEST")            // TRUE obviously
2) "TEST" == "TEST" // Also TRUE since String's are immutable
3) "TEST" == "T" + "E" + "S" + "T" // TRUE, but why? Due to compiler optimalization?
4) "TEST" == new String("TEST"); // FALSE, because you explicitly request a new String?

如有必要,任何人都可以纠正我并更详细地解释 3 和 4 吗?非常感谢!

最佳答案

连接发生在编译时,因此字符串会进入池,这就是为什么你得到true

关于最后一个,会创建一个新对象,因为您使用 new 关键字并通过 == 比较引用,因此您得到

这与不变性无关。

关于java - 字符串不变性,小测验,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19679054/

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