Integer cache
The shared Integer objects for -128 to 127 that boxing reuses instead of allocating.
Integer.valueOf (and autoboxing) returns cached instances for -128 to 127, as do Short, Byte and Long; Character caches 0 to 127. == on boxes seems to work inside the range and fails outside it.
See also