Combining equals()
with autoboxing can get really crazy:
Integer X = 9000;
Integer Z = 9000;
short y = 9000;
boolean b1 = (X == Z);
boolean b2 = (X == y);
boolean b3 = (X.equals(Z));
boolean b4 = (X.equals(y));
System.out.println(b1 + " " + b2 + " " + b3 + " " + b4);
outputs:
false true true false