java equals和==的區別 原

public class StaticDemo {
    public static void main(String[] args) {
        /**
         * 1、包裝類的“==”運算在未遇到算術運算的情況下不會自動拆箱(堆中存儲的地址是否相同,即棧中的內容是否相同)
         * 2、equals()方法不會處理數據類型轉換關係(同一個對象的引用,即堆中的內容是否相同)
         */
        Integer a = 1;
        Integer b = 2;
        Integer c = 3;
        Integer d = 3;
        Integer e = 300;
        Integer f = 300;
        Long g = 3L;
        System.out.println(c == d);//true
        System.out.println(e == f);//false
        System.out.println(c == (a+b));//true
        System.out.println(c.equals(a+b));//true
        System.out.println(g == (a+b));//true
        System.out.println(g == (a+b));//true
        System.out.println(g.equals(a+b));//false
    }

}

運行結果: true
                 false
                 true
                true
                true
                false

==操作比較的是兩個變量的值是否相等,對於引用型變量表示的是兩個變量在堆中存儲的地址是否相同,即棧中的內容是否相同
equals操作表示的兩個變量是否是對同一個對象的引用,即堆中的內容是否相同。

參照鏈接:https://zhidao.baidu.com/question/61622858.html

 

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