String s1="ab";
String s2="a"+"b";
System.out.println(s1==s2);//true
String s1 = "abc";
String s2 = "ab";
String s3 = s2 + "c";
System.out.println((s1 == s3));//false
String s1 = "abc";
final String s2 = "ab";
String s3 = s2 + "c";
System.out.println((s1 == s3));//true
參考:
理解Java常量池
Java String對象的經典問題(new String())
Java堆.棧和常量池 筆記
java編譯器對string常量表達式的處理和優化
Java 程序內存分析
String s2="a"+"b";
System.out.println(s1==s2);//true
String s1 = "abc";
String s2 = "ab";
String s3 = s2 + "c";
System.out.println((s1 == s3));//false
String s1 = "abc";
final String s2 = "ab";
String s3 = s2 + "c";
System.out.println((s1 == s3));//true
參考:
理解Java常量池
Java String對象的經典問題(new String())
Java堆.棧和常量池 筆記
java編譯器對string常量表達式的處理和優化
Java 程序內存分析