String s1="sss";
String s2="aaa";
String s3=s1+s2;
String s4="sss"+"aaa";app
問題一優化
System.out.println(s4=="sssaaa");//falsecode
問題二字符串
System.out.println(s3=="sssaaa");//true編譯器
有一個東西叫作常量摺疊,是一種編譯器優化技術。編譯
對於問題(一)
都是字符串字面量相加,都是編譯期常量,都會被編譯器進行常量摺疊。class
String s3 = new StringBuffer(a).append(b).toString();
這裏toString()會生成新的String變量,顯然用 == 運算符比較是會返回 false。變量