问题如下
第一段代码:
Long a=50L;
Long b=50L;
System.out.println(a==b);//a==b的结果true
第二段代码:
Long c=128L;
Long d=128L;
System.out.println(c==d);//c==d的结果false
原因:
当Long的值在[-128,127]之间是不会new一个实例的。
而当Long的值不在在[-128,127]之间内时候则会进行new出一个实例,这样就导致==比较时出现错误。
解决方案
方案一(推荐,我使用的这种方法)
Long c = 128L;
Long d = 128L;
c.equals(d);//true
方案二
Long c = 128L;
Long d = 128L;
c.equals(d);//true