第一段代码:
- 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