关于Integer的==小发现(非常好玩和易错)

Posted pc-m

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Integer的==小发现(非常好玩和易错)相关的知识,希望对你有一定的参考价值。

Integer n=new Integer(222);
Integer p=new Integer(222);
 System.out.println(n==222);

输出:true

这段代码没有疑问,因为发生了转型,n转为了int。

Integer n=new Integer(222);
Integer p=new Integer(222);
 System.out.println(n==p);

输出:false

这里需要需要注意了,n和p是不同对象,=比较的是内存地址所以输出false。

Integer n=new Integer(122);
Integer p=new Integer(122);
 System.out.println(n==p);

输出:false

这里为什么输出false,话说不是-128到127都用的缓存吗,对一半,另一半是new的时候不用缓存,只有在字面量赋值的时候才用缓存,和String有点像不是吗?看下面用字面量赋值:

Integer n=122;
Integer p=122;
 System.out.println(n==p);

输出:true

是不是很好玩啊~~~~

以上是关于关于Integer的==小发现(非常好玩和易错)的主要内容,如果未能解决你的问题,请参考以下文章

动态查询的传参测试,关于#和$在Integer下传0..o(^▽^)o

关于List比较好玩的操作

Integer转换为String类型

你值得了解的 10 个有趣的 Linux 命令行小技巧

太好玩了,爬虫部署API加小程序,一条龙玩转知乎热榜!

谁帮我总结下java中的知识要点 和易错点 要系统的