Java中int与Integer的区别
转自https://www.cnblogs.com/guodongdidi/p/6953217.html
import java.lang.Integer; public class intDemo{ public static void main(String[] args){ boolean eq = (int.class == Integer.class); System.out.println(String.format("int.class与Integer.class相等?%b",eq)); //因为new生成的是两个对象,其内存地址不同, //所以两个通过new生成的Integer变量永远是不相等的。 Integer i_new_100 = new Integer(100); Integer j_new_100 = new Integer(100); System.out.println(String.format("值相同的两个new生成的Integer相等?%b",i_new_100 == j_new_100)); //Integer和基本数据类型int比较时,java会自动拆包装为int, //然后进行比较,实际上就变为两个int变量的比较。 Integer i_integer = new Integer(100); int j_int = 100; System.out.println(String.format("值相同的int与Integer对象相等?%b",i_integer == j_int)); //两个非new生成的Integer对象进行比较, //如果两个变量的值在区间-128 ~ 127之间, //则比较结果为true //否则比较结果为false Integer i_100 = 100; Integer j_100 = 100; System.out.println(String.format("两个值为100的非new生成Integer对象相等?%b",i_100 == j_100)); Integer i_128 = 128; Integer j_128 = 128; System.out.println(String.format("两个值为100的非new生成Integer对象相等?%b",i_128 == j_128)); } }