Long型和long型的比较大小及‘==’和equals()

Java的Long类在[-128,127]范围内使用缓存,导致'=='在该范围内比较返回true,超出范围则为false。推荐使用equals()或longValue()与'=='结合来比较Long对象的相等性。" 122942978,11809103,Android Face++ SDK 人脸识别与年龄检测实战,"['移动开发', 'Android', '图像处理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

long a=127;
long b=123456;
long c=123456;

Long d=123456L;
Long e=123456L;
Long f=127L;
Long g=127L;
Long h= new Long(1234567);
System.out.println(a == 123);       //true
System.out.println(b == c);         //true
System.out.println(a < b);          //true
long是基本数据类型,判断是否相等时使用==,即可判断值是否相等。(基本数据类型没有equals()方法)
System.out.println(f == g);       //true
Long是引用数据类型,当其数值在[-128,127]之间时,能用==判断是否相等,亦可用 >、< 比较大小。

原因:java.lang.Long.java中:

    private static class LongCache {
        private LongCache(){}

        static final Long cache[] = new Long[-(-128) &
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值