intren方法:通俗的講,是將字符串放入常量池中。java
new出來的字符串是放在堆中,直接賦值的字符串是放在常量池中的。blog
對字符串作拼接操做,即作「+」運算,分兩種狀況字符串
(1)表達式右邊是純字符串常量,則存放在常量池中class
(2)表達式右邊存在字符串引用,則存放在堆中test
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存放在堆中。方法