java基本對象Integer,String比較相等及equal案例說明


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或==,結果都是一樣的,他們是一一對應關系。。!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM