Java 存储在字符串池中的字符串Lliteral是否唯一?

Java 存储在字符串池中的字符串Lliteral是否唯一?,java,string,jls,Java,String,Jls,我知道字符串可能会被插入,但这是一个在创建新字符串对象时以宗教方式执行的操作吗 Jls第3.10.5节字符串文本。所有字符串文本都进入字符串池。否则,应用程序必须在字符串上调用intern,否则它将不会进入池中 字符串文字是出现在源代码中的字符串,其周围带有双引号: String greeting = "Hello, "; String s = greeting + name; 在本例中,Hello是一个文本字符串。它在实习池里。它也被变量greeting引用 s引用的字符串不是文本,也不在实

我知道字符串可能会被插入,但这是一个在创建新字符串对象时以宗教方式执行的操作吗

Jls第3.10.5节字符串文本。

所有字符串文本都进入字符串池。否则,应用程序必须在字符串上调用intern,否则它将不会进入池中

字符串文字是出现在源代码中的字符串,其周围带有双引号:

String greeting = "Hello, ";
String s = greeting + name;
在本例中,Hello是一个文本字符串。它在实习池里。它也被变量greeting引用

s引用的字符串不是文本,也不在实习生池中…除非您进行以下调用:

s = s.intern();
所有字符串文字都进入字符串池。否则,应用程序必须在字符串上调用intern,否则它将不会进入池中

字符串文字是出现在源代码中的字符串,其周围带有双引号:

String greeting = "Hello, ";
String s = greeting + name;
在本例中,Hello是一个文本字符串。它在实习池里。它也被变量greeting引用

s引用的字符串不是文本,也不在实习生池中…除非您进行以下调用:

s = s.intern();

@下巴。String x=zzz不创建新的String对象。我的意思是,一旦编译,就不能创建新的String文本,因为如果它在源代码中,它只是一个String文本。String x=zzz是否意味着zzz String文本是在String池中创建的并引用到x?是的,没错。我们会说,被x引用,但我认为你理解这个原理。String x=zzz不创建新的String对象。我的意思是,一旦编译,就不能创建新的String文本,因为如果它在源代码中,它只是一个String文本。String x=zzz是否意味着zzz String文本是在String池中创建的并引用到x?是的,没错。我们会说被x引用,但我想你理解这个原理。嗨,Erickson,insightful,我说intern pool==字符串池对吗?@ChinBoon是的,运行时使用的唯一字符串池是intern pool。嗨,Erickson,insightful,我说intern pool==字符串池对吗?@ChinBoon是的,运行时使用的唯一字符串池是intern池。