auto-boxing and valueOf(..)
Autoboxing uses Integer.valueOf(int)
,which internally caches Integer objects for small integers (by default -128 to 127, but the max value can be configured with the “java.lang.Integer.IntegerCache.high” property.
Double is the same by using Double.valueOf(..)
So the following two lines are equivalent.
Integer i = 12;
Integer i = Integer.valueOf(12);
If you don’t believe it, you can decompile the .class file to see what the compiler does.