本文作者:DurkBlue

JAVA对于比较Long类型背后的原理深析推荐

DurkBlue 2023-12-28 891
JAVA对于比较Long类型背后的原理深析摘要: Java中,比较Long类型是否相等,可以使用“==”和“equals()”方法。一、使用“==”进行比较在Java中,"=="用于比较两个基本数据类型或两个引...

Java中,比较Long类型是否相等,可以使用“==”和“equals()”方法。


一、使用“==”进行比较

在Java中,"=="用于比较两个基本数据类型或两个引用数据类型是否指向同一对象。对于Long类型的封装类,

由于它们的值在-128到127之间时会被缓存,因此这些值相同的Long型对象会指向同一个对象,

使用"=="比较会返回“true”。

但是,超出这个范围的值创建的Long型对象不是同一个对象,即使值相同,使用"=="也会返回“false”。


Long a = 128L;
Long b = 128L;
System.out.println(a == b); // 输出false
Long a = 127L;
Long b = 127L;
System.out.println(a == b); // 输出true


二、使用“equals()”进行比较

另一种比较Long类型的相等性的方式是使用“equals()”方法。

"equals()"方法会比较两个Long对象的数值是否相等,

而不是比较是否指向同一个对象。因此,无论Long对象的值在何种范围内,

只要值相等,使用"equals()"方法比较都会返回“true”。


Long a = 128L;
Long b = 128L;
System.out.println(a.equals(b)); // 输出true
Long a = 127L;
Long b = 127L;
System.out.println(a.equals(b)); // 输出true


三、基本类型与封装类之间的比较

还有一个需要注意的点是,基本类型和封装类之间使用"=="比较的时候,会进行自动拆箱操作。

也就是说,会把封装类转成基本类型进行数值的比较。

因此,不论数值是否在-128到127之间,基本类型和封装类之间的"=="比较总会返回正确的结果。


long a = 128L;
Long b = 128L;
System.out.println(a == b); // 输出true
long a = 127L;
Long b = 127L;
System.out.println(a == b); // 输出true



此篇文章由DurkBlue发布,转载请注明来处
文章投稿或转载声明

来源:DurkBlue版权归原作者所有,转载请保留出处。本站文章发布于 2023-12-28
温馨提示:文章内容系作者个人观点,不代表DurkBlue博客对其观点赞同或支持。

赞(0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享