【java編程基礎】Integer 與 int 比較

 

package com.java.demo.Base;

public class TestInteger {

//    public static Integer valueOf(int i) {
//        return  i >= 128 || i < -128 ? new Integer(i) : SMALL_VALUES[i + 128];
//    }


    public static void main(String[] args) {

        System.out.println("***************(SMALL_VALUES[i + 128])*********************");
        int int1 = 12;
        Integer integer11 = new Integer(12);
        Integer integer12 = new Integer(12);
        Integer integer13 = 12; //java在編譯的時候,被翻譯成-> Integer integer = Integer.valueOf(12);
        Integer integer14 = 12;
        System.out.println("兩個 new Integer相比" + (integer11 == integer12));
        System.out.println("兩個 自動裝箱 Integer相比" + (integer13 == integer14));
        System.out.println("自動裝箱 new 相比" + (integer12 == integer13));
        System.out.println("int new 相比" + (int1 == integer11));
        System.out.println("int 自動裝箱 相比" + (int1 == integer13));

        System.out.println("***************(new Integer(i))*********************");

        int int2 = 128;
        Integer integer21 = new Integer(128);
        Integer integer22 = new Integer(128);
        Integer integer23 = 128;
        Integer integer24 = 128;
        System.out.println("兩個 new Integer相比" + (integer21 == integer22));
        System.out.println("兩個 自動裝箱 Integer相比" + (integer23 == integer24));
        System.out.println("自動裝箱 new 相比" + (integer22 == integer23));
        System.out.println("int new 相比" + (int2 == integer21));
        System.out.println("int 自動裝箱 相比" + (int2 == integer23));

        System.out.println("**************(new Integer(i))**********************");

        int int3 = -129;
        Integer integer31 = new Integer(-129);
        Integer integer32 = new Integer(-129);
        Integer integer33 = -129;
        Integer integer34 = -129;
        System.out.println("兩個 new Integer相比" + (integer31 == integer32));
        System.out.println("兩個 自動裝箱 Integer相比" + (integer33 == integer34));
        System.out.println("自動裝箱 new 相比" + (integer32 == integer33));
        System.out.println("int new 相比" + (int3 == integer31));
        System.out.println("int 自動裝箱 相比" + (int3 == integer33));


    }

}

***************(SMALL_VALUES[i + 128])*********************
兩個 new Integer相比false
兩個 自動裝箱 Integer相比true
自動裝箱 new 相比false
int new 相比true
int 自動裝箱 相比true

***************(new Integer(i))*********************
兩個 new Integer相比false
兩個 自動裝箱 Integer相比false
自動裝箱 new 相比false
int new 相比true
int 自動裝箱 相比true

**************(new Integer(i))**********************
兩個 new Integer相比false
兩個 自動裝箱 Integer相比false
自動裝箱 new 相比false
int new 相比true
int 自動裝箱 相比true

總結:

1、int 與 integer 比較,只關心數值比較

2、涉及new創建的Integer對象比較,都爲false(

i >= 128 || i < -128 這個範圍的數據都涉及new)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章