当创建字符串池中的字符串时,它不允许重复,是否使用hashCode来检测它是否重复?

时间:2015-12-14 15:16:53

标签: java hashcode

使用"创建字符串对象",所以它是在字符串池中创建的。它是否使用hashCode来决定它是否重复?

String s1="abc";
String s2="abc";

1 个答案:

答案 0 :(得分:3)

没有记录它是否使用hashCodeintern机制纯粹用高级术语指定,在String#intern的JavaDoc和JLS中的§15.28中简要指定。

这意味着实现可以做他们想做的事情,因此他们可以使用hashCode作为部分确定字符串是否已经在池中(它可以'作为整个解决方案,字符串hashCode不能唯一识别它;您必须查看其字符序列)。 Oracle的实现使intern成为一种本机方法,因此必须深入挖掘JVM代码才能弄清楚它的作用。