int和Integer的区别

(1)Integer是int的包装类,int是基本数据类型
(2)Integer变量必须实例化会才能使用,int变量则不用
(3)Integer的默认值是null,int的默认值是0
(4)Integer实际是对象的引用,new Integer()会生成一个指针指向此对象;int则直接存储数据值

int和Integer的比较
(1)
Integer i = new Integer(100);
Integer j = new Integer(100);
System.out.print(i == j); //false
两个通过new生成的Integer变量永远不相等,因为new生成的两个对象,其内存地址不一样

(2)
Integer i = new Integer(200);
int j = 200;
System.out.print(i == j); //true
包装类和基本数据类型int比较时,Java会自动拆包装类为int进行比较,实际上是两个int变量的比较

(3)
Integer i = new Integer(100);
Integer j = 100;
System.out.print(i == j); //false
数值在-128~127之间时,非new生成的Integer变量指向的是Java常量池中的对象,而new Integer()生成的变量指向堆中新建的对象,两者的内存地址不一样

(4)
Integer i = 100;
Integer j = 100;
System.out.print(i == j); //true

Integer i = 128;
Integer j = 128;
System.out.print(i == j); //false

两个非new生成的Integer对象进行比较时,如果变量在-128~127之间,比较结果为true,如果不在此区间,则比较结果为false

posted @   愚昧小生  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示