gpt4 book ai didi

java - 理解 Java 中字符串文字的创建

转载 作者:行者123 更新时间:2023-12-01 10:01:46 26 4
gpt4 key购买 nike

我是 stackoverflow 的新手,我发现它非常有用,非常感谢这个伟大的社区。虽然我一直在了解java中的字符串,但我只是想知道字符串文字源是如何创建的?我了解了java中字符串的大部分概念。它是一种特殊的类,它是final的,我也理解当创建一个字符串文字时,将在堆上创建一个对象,并且它的引用将在字符串常量池中。通过使用这个。

String name = "Manchester";

我还了解到,当使用new运算符创建字符串时,引用将拥有堆上的对象和字符串常量池中的引用。就这样吧。

String name = new String("United");

正如我确实了解如何使用 new 运算符在堆上创建对象一样,我不明白的是当我们使用双引号“”时如何在堆上创建对象。这是如何实现的?我也考虑过 String.class 的源代码,但它对我没有任何帮助。

有人可以告诉我这是如何工作的吗?谢谢。

最佳答案

String name = "Manchester";

将在字符串常量池(堆中)中搜索相同值的对象,如果找到则使用该对象,如果没有则执行以下操作:

String name = new String("Manchester");

请注意,String 是不可变的,因此它会尝试使用已存在的对象而不是创建对象。

您可以通过以下方式检查:

String x = "a";
String y = "a";

x==y //true

还有

String x = new String("a");
String y = new String("a");

x==y //false

关于java - 理解 Java 中字符串文字的创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36762845/

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