java中比较Long类型值是否相等

编程入门 行业动态 更新时间:2024-10-25 14:27:01

java中比较Long<a href=https://www.elefans.com/category/jswz/34/1771355.html style=类型值是否相等"/>

java中比较Long类型值是否相等

目录

问题引入:

一、使用“==”比较

二、使用“equals()”比较

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


问题引入:

在某个需求中,需要去比较入参Long类型的值与缓存中Long类型的值是否相等;当我使用的“==”去比较两个值是否相等时发现,数值小于128的均能符合预期;但是当值大于127时,就算两个Long类型的值相同,用==比较时也会判断出为false;

于是就想起来了基本数据类型的装箱与拆箱,对于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()”比较

使用“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

更多推荐

java中比较Long类型值是否相等

本文发布于:2023-11-16 08:39:20,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1614913.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:类型   java   Long

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!