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)