1. 程式人生 > >Integer int型別的 == 比較

Integer int型別的 == 比較

		Integer a = 1;
        int b = 1;
        Integer c = Integer.valueOf(1);
        Integer d = new Integer(1);
        System.out.println(a == b);
        System.out.println(a == c);
        System.out.println(c == b);
        System.out.println(a == d);
        System.out.println(c == d);

結果

true
true
true
false
false

Integer a = 1預設呼叫Integer.valueOf(1),而Integer.valueOf是有-128-127的快取的,所以a == c為true;
Integer 和int型別的比較,Integer 預設呼叫intValue方法獲取原始值,所以a == b為true;
Integer d = new Integer(1)是新建立的物件,所以a == d c ==d都為false;