Long类型比较的一个小问题

考虑Java中以下代码的输出:

Long a=127L;
Long b=127L; 
System.out.println(a==b);//true
a=128L;
b=128L;
System.out.println(a==b);//false
Long x=new Long(127);
Long y=new Long(127);
System.out.println(x==y);//false
System.out.println(x.equals(y));//true

这里涉及的主要是对象的比较,一般来说对于 Integer、String、Long等的比较我们不要使用 ==,它比较的是两者是不是同一个对象,而不是值相不相同。可是在上面例子中,当Long小于一个字节的时候,会自动存储成变量,这时候却是可以用==比较的。这两者的不一致可能会导致我们测试时出现问题。如果要比较值,我们或者使用equal()方法,或者使用longValue()方法获取到值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值