今天项目中出现一个奇怪的问题,最后调试才发现,两个Long对象的实际值虽然一样,但是==操作却返回false,最后想起来,这是对象类型和值类型的区别。
一个示例如下:
Long long1 = 111111L;
Long long2 = 111111L;
if (long1.equals(long2)){
System.out.println("equals"); //会打印
}
if (long1==long2){
System.out.println("=="); //不会打印
}
结论:对象类型比较相等必须使用equals方法,不能使用==。