int和Integer的区别:
-
数据类型不同。int是基本数据类型,而Integer是包装数据类型(即引用类型);
-
默认值不同。int的默认值是0,而Integer的默认值是null(验证了Integer是引用数据类型了);
-
初始化不同。int不经过实例化便可直接使用,而Integer需要进行实例化才可以使用;
-
存储的方式不同。int直接存储一个数据值(范围 -2^31 ~ 2^31 - 1),而Integer实际存储的是对象引用(其存储在栈中,是具有一个地址值的),如Integer i = new Integer(100),此时表示生成一个对象引用i,而真正的对象存储在堆空间中,且有一个属性value的值为100;
-
比较方式不同。int可以直接使用==来进行数值比较,而Integer一定要用equals来比较两个变量的值是否相等(这里Integer类重写了Object类内的equals方法)。