Integer 源碼探尋

        Integer a = 2013;
        Integer b = 2013;
        if (a == b) {
            System.out.println("a==b");
        } else if (a.equals(b)) {
            System.out.println("a equals b");
        }

        Integer c = 24;
        Integer d = 24;
        if (c == d) {
            System.out.println("c==d");
        } else if (a.equals(b)) {
            System.out.println("c equals d");
        }

a equals b
c==d
  • Integer 的包裝類,所以是引用類型,比較的是對象的地址值,所以走else;
  • 但是24為什么就==成立了呢, 因為 integer內部對-128到127進行了緩存直接取出的是同了一個對象;

參考文章 : https://my.oschina.net/jiutianniao/blog/400390

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Java8張圖 11、字符串不變性 12、equals()方法、hashCode()方法的區別 13、...
    Miley_MOJIE閱讀 3,731評論 0 11
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,368評論 25 708
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,766評論 18 399
  • 今天6點前完成了任務,然后又要到8點,兩個小時竟然沒有要到微信,每個人都非常著急的匆匆走,也有可能是周五的原因,還...
    楠_8819閱讀 188評論 0 0
  • 這幾天跟我寶在一起,不僅沒寫簡書,還嚴重打亂了她的讀書,看論文,學英語的計劃,但是我真的過得非常非常開心,她也是。...
    上天的XLG閱讀 82評論 0 1