Integer i = new Integer(100); Integer i2 = new Integer(100); if(i == i2){ System.out.println("AAAAAAAAAA"); } if(i.intValue() == i2.intValue()){ System.out.println("BBBBBBBBBB"); } String i3 = "100"; String i4 = "100"; if(i3.equals(i.toString())){ System.out.println("CCCCCCCCCC"); } if(i3 == i.toString()){ System.out.println("DDDDDDDDDD"); } if(i3 == i4){ System.out.println("EEEEEEEEEE"); } String i5 = new String("100"); String i6 = new String("100"); if(i5 == i6){ System.out.println("FFFFFFFFFF"); }
以上輸出結果為:
BBBBBBBBBB
CCCCCCCCCC
EEEEEEEEEEE
String 的equals 方法用於比較兩個字符串是否相等。由於字符串是對象類型,所以不能用簡單的“==”判斷。而使用equals比較兩個對象的內容是否相等。
注意:
equals()比較的是對象的內容(區分字母的大小寫格式),但是如果使用“==”比較兩個對象時,比較的是兩個對象的內存地址,所以不相等。即使它們內容相等,但是不同對象的內存地址也是不相同的。
輸出EEE的原因:
如果是字符串常量的話...用“==”並不影響結果的。
因為在java中有個常量池,所有的字符串常量都在一起。任意多個相同的字符串,在內存中只會有一個實體。所有你用equal或==,結果都是一樣的,他們是一一對應關系。。!
