Java 語言中,不管新菜鳥,仍是老司機,真正瞭解String內存的不多。關於String 的試題,花樣不少。== 在什麼狀況下是true,什麼狀況是false。我總結出以下3點讓你完全結束對String的模糊感。不管怎麼變化,都離不開如下3種類型:app
一、常量池存取(同一引用):ui
String str="a"; 或 String str="a"+"b";(編譯後:"ab")spa
二、堆內存構建(新對象):對象
String str=new String("1");內存
三、引用拼接(相似於StringBuild 的 append,每次拼接都產生新的對象):編譯
String str1="a";引用
String str2="b";總結
String str3=new String("c");語言
String str4=new String("c");co
String strs1=str1+str2; 或 str1+="a"; 或 String strs2=str1+str3; 或 String strs5=str3+str4 .......