java number 比较陷阱
所属分类 java
浏览量 1366
public class NumberEqual {
public static void main(String[] args) throws Exception {
Long longValue = 0L;
Number num = longValue;
// false !!!
System.out.println("num.equals(0)="+num.equals(0));
// true
System.out.println("num.equals(0L)="+num.equals(0L));
// true
System.out.println("num.longValue()==0 is "+(num.longValue()==0));
// true 推荐这种写法
System.out.println("num.intValue()==0 is "+(num.intValue()==0));
}
}
num.equals(0)=false
num.equals(0L)=true
num.longValue()==0 is true
num.intValue()==0 is true
Long equals 方法 先比较类型 !!!
public boolean equals(Object obj) {
if (obj instanceof Long) {
return value == ((Long)obj).longValue();
}
return false;
}
上一篇
下一篇
mysql连接信息查看
Java锁机制
java资源加载方式比较
手机4G信号突然变成2G信号
JVM性能分析利器 JMC 和 JFR
Timer和ScheduledExecutorService的区别