存储在字符串池中的字符串文字是唯一的吗?

时间:2011-09-28 23:44:21

标签: java string jls

我理解字符串可能会被实习,但它是一个在创建新字符串对象时虔诚执行的操作?

Jls section 3.10.5 string literals。

1 个答案:

答案 0 :(得分:6)

所有String 文字都会进入字符串池。否则,您的应用程序必须在intern()上致电String,否则它将不会进入池中。

String字面值是一个字符串,显示在源代码中,并带有双引号:

String greeting = "Hello, ";
String s = greeting + name;

在此示例中,"Hello, "是文字字符串。它在实习池中。它也由变量greeting引用。

String引用的s不是字面值,并且不在实习池中......除非您拨打此电话:

s = s.intern();