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.