Java字符串相关知识点

Java intern() 方法

首先,对于不是 new 的字符串,如果是静态字符串,那么会直接添加到常量池中,如 str3;如果带有变量,那么不会入常量池,比如 str4。

str.intern(),内容与字符串相同,但一定取自具有唯一字符串的池。也就是说,每次到常量池中找字符串,如果存在,返回引用,不存在,添加后返回引用。

1
2
3
4
5
6
7
8
String str1="a";
String str2="b";
String str3="a"+"b";
String str4=str1+str2;
String str5=new String("ab");

str5.intern()==str3==str4.intern()