Как вы сказали, метод string intern()
сначала найдет из пула String, если найдет, то вернет объект, который указывает на это, или добавит новую строку в пул.
String s1 = "Hello";
String s2 = "Hello";
String s3 = "Hello".intern();
String s4 = new String("Hello");
System.out.println(s1 == s2);//true
System.out.println(s1 == s3);//true
System.out.println(s1 == s4.intern());//true
s1
и s2
- это два объекта, указывающие на пул строк "Hello", и с помощью "Hello".intern()
будет найдено, что s1
и s2
. Так что "s1 == s3"
возвращает true, а также s3.intern()
.