I just saw code similar to this:
public class Scratch { public static void main(String[] args) { Integer a = 1000, b = 1000; System.o
My guess is that Java keeps a cache of small integers that are already 'boxed' because they are so very common and it saves a heck of a lot of time to re-use an existing object than to create a new one.