一、在-128~127范围内的Integer对象
1、以 Integer x = value 的方式赋值,只是进行int原生数据类型的数值比较
Integer in1 = 20;
Integer in2 = 20;
System.out.println(in1 == in2); // true
2、使用new操作创建新对象
Integer in3 = new Integer(20);
System.out.println(in1 == in3); // false
3、Integer.valueOf解析成Integer对象后比较,不属于创建新对象操作
System.out.println(in1 == Integer.valueOf(20)); // true
4、Integer.parseInt直接转成了int类型
System.out.println(in1 == Integer.parseInt("20")); // true
二、超出-128~127范围的Integer对象
1、超出-128~127的范围,进行==比较时是进行地址及数值比较
Integer in4 = 200;
Integer in5 = 200;
System.out.println(in4 == in5); // false
2、Integer.valueOf解析成Integer对象后比较
System.out.println(in4 == Integer.valueOf(200)); // false
3、Integer.parseInt直接转成了int类型
System.out.println(in4 == Integer.parseInt("200")); // true
4、Integer 与 int 比较的时候,是将Integer转成int再比较两个值大小
System.out.println(in4 == 200); // true