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