前言
应该都知道==
比较地址和equals
比较value
Long对象和值比较
昨天遇见一个bug,做项目的时候直接从数据库取出值后使用到了==
和equals
比较,最开始并没有注意封装的对象是Long
因为比较语句是Long和0比较,请看下面的案例就知道了
案例
Long long1 = new Long(12);
Long long2 = new Long(12);
System.out.println("对象==:"+(long1==long2));
System.out.println("对象==12:"+(long1==12));
System.out.println("对象equals:"+(long1.equals(long2)));
System.out.println("值==:"+((long)long1==(long)long2));
对象==:false
对象==12:true
对象equals:true
值==:true