【int和Integer的区别】
int是java提供的8种原始类型之一,java为每个原始类型提供了封装类,Integer是int的封装类。int默认值是0,而Integer默认值是null;
int和Integer(无论是否new)比较,都为true, 因为会把Integer自动拆箱为int再去比;
Integer是引用类型,用==比较两个对象,其实比较的是它们的内存地址,所以不同的Integer对象肯定是不同的;
【应用场景】
integer的场景
1.Integer默认值是null,可以区分未赋值和值为0的情况.需要区分未赋值的情况下用Integer
2.容器里面用Integer.比如List<Integer>
3.在需要序列化时,基本类型可能会出错
int的场景
1.默认值为0的场景用int.比如统计报表的场景下,没有就是0.这时用int.
2.加减乘除运算比较多的情况下,用int.用Integer需要拆装箱,比较耗性能