Autoboxing, introduced in Java 5, is the automatic conversion the Java compiler makes between the
primitive (basic) types and their corresponding object wrapper classes
(eg, int and Integer, double and Double, etc).
The underlying code that is generated is the same, but autoboxing provides
a sugar coating that avoids the tedious and hard-to-read casting
typically required by Java Collections, which can not be used with primitive types.
| With Autoboxing | Without Autoboxing |
|---|---|
int i; Integer j; i = 1; j = 2; i = j; j = i; |
int i; Integer j; i = 1; j = new Integer(2); i = j.valueOf(); j = new Integer(i); |
Use the primitive types where there is no need for objects for two reasons.
== (compare references)
and .equals() (compare values). See the reference below for
examples.