关于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的==小发现(非常好玩和易错)的主要内容,如果未能解决你的问题,请参考以下文章