使用"创建字符串对象",所以它是在字符串池中创建的。它是否使用hashCode来决定它是否重复?
String s1="abc";
String s2="abc";
答案 0 :(得分:3)
没有记录它是否使用hashCode
。 intern
机制纯粹用高级术语指定,在String#intern
的JavaDoc和JLS中的§15.28中简要指定。
这意味着实现可以做他们想做的事情,因此他们可以使用hashCode
作为的部分确定字符串是否已经在池中(它可以'作为整个解决方案,字符串hashCode
不能唯一识别它;您必须查看其字符序列)。 Oracle的实现使intern
成为一种本机方法,因此必须深入挖掘JVM代码才能弄清楚它的作用。