比較兩個字符串是否相同

      今天期末考試看到一個題,發現了以前自己對於 == 和equals的認識還是有一定的不足,下面是這道題

public class A {
	public static void main(String[] args) {
		String s1 = "shuangti";
		String s2 = "shuang" + "ti";
		boolean b1 = s1.equals(s2);
		boolean b2 = s1 ==s2;
		System.out.println(b1 + " " + b2);
	}
}

        我以前的想法是equals比較的是兩個字符串的數值,==比較的是兩個字符串的地址.所以我以爲是true false,但是最終結果是true true。後來查閱資料才知道當==先去查找常量池中是否有“shuangti”這個字符串,如果有就不生成新的,沒有的話就生成新的。所以最後得到還是一樣的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章