Java学习笔记:int和Integer的区别
1.int是java的八大基本数据类型之一,Integer是它的包装类。
2.Integer必须实例化之后才能引用,而int 不需要。
3.Imteger是实际是对象的引用,而int直接存储数据值。
4.int的默认值是0,Integer的默认值是null。
首先java中Byte,Short,Integer,Long,Character,Boolean都实现了常量池技术***,这里通过一些代码来理解int和Integer*的区别。
1比较两个Integer值。Imteger是实际是对象的引用,即new之后的在堆中开辟两个不同的空间。这里的返回值为false。
Integer i=new Integer(100) ;//new Integer()生成的变量指向堆中新建的对象
Integer j=new Integer(100) ;
System .out.print(i==j) ;//false
2.比较Integre和int的值。java类中Integer和int比较自动拆箱成int型,变成两个int 值比较。只要数字相等则返回true。
Integer i=new Integer(100) ;//java类中Integer和int比较自动拆箱成int型
int j=100 ;
System .out.print(i==j) ;//true
3、非new生成的Integer变量和new Integer()生成的变量比较时,结果为false。
Integer i=new Integer(100) ;///new Integer()生成的变量指向堆中新建的对象
Integer j=100;//指向Java中的常量池的对象
System .out.print(i==j) ;//flase
4.对于两个非new生成的Integer对象比较,如果数字范围在-127到127之间,则返回true,否则返回flase。
Integer i=100 ;
Integer j=100;
System .out.print(i==j) ;//true
Integer i=255 ;
Integer j=255;
System .out.print(i==j) ;//false
参考:https://www.cnblogs.com/guodongdidi/p/6953217.html
https://blog.csdn.net/qq_26947195/article/details/79505553