Java128陷阱

阅读: 评论:0

Java128陷阱

Java128陷阱

当我们在比较Java中Interger类型的数据时,有时候会发现两个明明相同的值,最后比较的结果为false,这是为什么呢?这就要了解一下我们常说的“128陷阱”
在Java中,Interger是数据类型int的封装类,Java设计者是这么认为的:

每次都要开辟新空间会占用大量的资源,因此他们规定在-128~127(因为Java设计者认为大家对数的使用大多在100以内)之间的Integer类型的变量,直接指向常量池中的缓存地址,不会new开辟出新的空间。  

下面我们来看看代码:
public static void main(String[] args) {Integer a1=127;Integer a2=127;Integer b1=128;Integer b2=128;System.out.println(a1==a2);System.out.println(b1==b2);}

运行结果为:

*如果想要正确比较的话,一定要拆箱比较,即在变量后加intValue()方法

*如果想要正确比较的话,一定要拆箱比较,即在变量后加intValue()方法

*如果想要正确比较的话,一定要拆箱比较,即在变量后加intValue()方法
重要的事情说三遍。

public static void main(String[] args) {Integer a1=127;Integer a2=127;Integer b1=128;Integer b2=128;System.out.println(a1.intValue()==a2.intValue());System.out.println(b1.intValue()==b2.intValue());}

本文发布于:2024-02-01 10:50:48,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170675584836097.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:陷阱
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23