intren方法:通俗的講,是將字符串放入常量池中。
new出來的字符串是放在堆中,直接賦值的字符串是放在常量池中的。
對字符串做拼接操作,即做“+”運算,分兩種情況
(1)表達式右邊是純字符串常量,則存放在常量池中
(2)表達式右邊存在字符串引用,則存放在堆中
public class test {
public static void main(String[] args) {
String s1="aaa";
String s2="bbb";
String s3="aaabbb";
String s4=s1+s2;
String s5="aaa"+"bbb";
String s6=new String("aaabbb");
System.out.println(s3==s4);
System.out.println(s3==s4.intern());
System.out.println(s3==s5);
System.out.println(s3==s6);
System.out.println(s3==s6.intern());
}
}
結果如下:
false true true false true
說明:s1,s2,s3,s5均存放在常量池中,s4,s6存放在堆中。
