String a="A";
String b="B";
final String c="C";
final String d="D";
String e=a+b;
String f=a+b;
System.out.println(e==f);//false
String g=c+d;
String h=c+d;
System.out.println(g==h);//true
爲什麼這樣呢?字符串對象是在特殊的內存中創建的,稱爲字符串常量池。但是這裏最後一個變量的意義是什麼。最終參考變量的意義
最終意味着變量一旦初始化就不能改變。間接地,這意味着編譯器可以使用變量靜態計算表達式的值。並且任何預先計算的字符串值都將被執行,從而允許'=='測試爲真。 – 2012-01-31 17:29:27