【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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章