Values & References14 / 16
Up next

Boxed Integer identity

class Main {
    public static void main(String[] args) {
        Integer a = 127;
        Integer b = 127;
        // small Integers are cached, so == is accidentally true
        System.out.println(a == b);
        Integer c = 1000;
        Integer d = 1000;
        // larger ones are separate objects; always use equals
        System.out.println(c == d);
        System.out.println(c.equals(d));
    }
}
What you're solving

== on boxed values is a trap