我明白,一個方法內:字符串相等構建從字符數組字符串或串接字符
String myStr1 = "good";
String myStr2 = "good";
System.out.println(myStr1==myStr2);
打印真。 出於同樣的原因:
String myStr1 = "good";
String myStr2 = ""+'g'+'o'+'o'+'d';
System.out.println(myStr1==myStr2);
打印也是如此。
那麼爲什麼:
String myStr1 = "good";
char[] myCharArr = {'g', 'o', 'o', 'd' };
String myStr2 = ""+myCharArr[0]+myCharArr[1]+myCharArr[2]+myCharArr[3];
System.out.println(myStr1==myStr2);
打印假的? 我沒有看到兩個最後的代碼之間的區別。 有什麼想法? 謝謝。
前兩個示例在編譯時連接在一起,並解析爲同一個對象。最後一個示例在運行時連接在一起,通常會創建一個新的唯一String對象。 – Nayuki
我明白了。韓國社交協會。 –
http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java是一個很好的頁面書籤爲此:) – nullpointer