Most JVMs (even 64-bit ones) use 32-bit references. (Newer JVMs uses 32-bit references for heaps up to almost 32 GB) The reference is on the stack or in a CPU register and is not usually counted. The Integer is allocated on the heap.
Integer i = new Integer(1); // creates a new object every time.
Integer j = 1; // use a cached value.
Using auto boxing is not only shorter, but can be more efficient as it can use a cache.
Of course the most efficient is
int k = 1; // not object created and no heap used.
For autoboxed values the performance difference is very small compared with primitives and the reference is likely to be the same size as the int
value. However for larger values, there can be a significant performance difference.