integer a=128 integer b=128 a==b

    Integer a = 128;
    Integer b = 128;
    System.out.println(a==b);
    Integer c = 1;
    Integer d = 1;
    System.out.println(c==d);

执行结果:false
true

解释原因:
类似String一样

对于这样直接赋值的Integer 当值的范围在 [-128,127] 时候 会不生成新的对象 直接把缓存中的对对象拿来用 Integer a=128;Integer b=128 这样的话就是false了 可以看看Integer的源代码 里面有实现


版权声明:本文为weixin_51275362原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。