String Intern API doc

San*_*eth 1 java string

java.lang.String.intern() API doc说

否则,将此String对象添加到池中,并返回对此String对象的引用.

它告诉,如果String对象不在池中,它会将相同的String对象添加到池中.那么在下面的代码中,为什么输出不是true

String s1 = new String("abc");
String s2 = s1.intern();
System.out.println(s1 == s2);
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 7

所有字符串文字都会自动实现.因此,s1.intern()返回已经实例化的实例"abc",而不是s1.

要创建一个没有实习的字符串,你可以写new String("a") + "bc".