标签:lse -128 code als 关于 没有 需要 赋值 class
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
是不是很好玩啊~~~~
标签:lse -128 code als 关于 没有 需要 赋值 class
原文地址:https://www.cnblogs.com/pc-m/p/11243618.html