java number 比较陷阱  
   
所属分类 java
浏览量 1867
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的区别