int和Integer的区别 , int vs Integer
- Integer是int的包装类,int则是java的一种基本数据类型
- Integer变量必须实例化后才能使用,而int变量不需要
- Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
- Integer的默认值是null,int的默认值是0
/**
* int和Integer的区别
* new Integer()与Integer.valueOf()区别
*
* @author www.only-demo.com
*
*/
class IntVsIntegerDemo {
public static void main(String[] args) {
//两个通过new生成的Integer变量永远是不相等的
Integer integer1 = new Integer(127);
Integer integer2 = new Integer(127);
System.out.println(integer1 == integer2);//false
//判断两个Integer是否相等的正确方法是使用equals()方法
System.out.println(integer1.equals(integer2));//true
//-128到127之间的值,Integer.valueOf()生成对象时从缓存池取
System.out.println(Integer.valueOf(127) == Integer.valueOf(127));//true
System.out.println(Integer.valueOf(128) == Integer.valueOf(128));//false
//自动装箱等同与Integer.valueOf()
Integer int127 = 127;
Integer int128 = 128;
System.out.println(int127 == Integer.valueOf(127));//true
System.out.println(int128 == Integer.valueOf(128));//false
}
}
参考: http://www.only-demo.com/java/20190223/291.html