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)