Boxed Primitives and Equivalence

后端 未结 4 998
伪装坚强ぢ
伪装坚强ぢ 2020-12-06 10:36

So I was asked this question today.

Integer a = 3;
Integer b = 2;
Integer c = 5;
Integer d = a + b;
System.out.println(c == d);

What will t

4条回答
  •  死守一世寂寞
    2020-12-06 10:55

    Caching happens outside of autoboxing too, consider this:

    Integer a = 1;
    Integer b = new Integer(1);
    Integer c = Integer.valueOf(1);
    
    System.out.println(a == b);
    System.out.println(b == c);
    System.out.println(c == a);
    

    this will print:

    false
    false
    true
    

    So I guess that generally you want to stay away from '==' when comparing Objects

提交回复
热议问题