了解在Java中创建String文字

时间:2016-04-21 07:36:35

标签: java string

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

String name = "Manchester";

我也明白,当使用new运算符创建字符串时,引用将在堆上具有对象,并在字符串常量池中引用。通过这种方式。

String name = new String("United");

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

任何人都可以让我知道这是如何工作的?感谢。

1 个答案:

答案 0 :(得分:1)

String name = "Manchester";

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

String name = new String("Manchester");

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

您可以这样检查:

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

x==y //true

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

x==y //false