Autoboxing, introduced in Java 5, is the automatic conversion that Java makes between the primitive (basic) types and their corresponding object wrapper classes (eg,
Boolean, etc). This sugar coating the 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);
Prefer primitive types
Use the primitive types where there is no need for objects for two reasons.
- Primitive types will not be slower than their corresponding wrapper types, and may be a lot faster.
- There can be some unexepected behavior involving
==(compare references) and
.equals()(compare values). See the reference below for examples.
- Autoboxing surprises from J2SE 5 (www.theserverside.com/news/thread.tss?thread_id=27129)