Boxing Conversion
Boxing conversion converts values of primitive type to corresponding values of reference type. Specifically, the following 8 conversion are called the boxing conversions:
From type boolean to type Boolean
From type byte to type Byte
From type char to type Character
From type short to type Short
From type int to type Integer
From type long to type Long
From type float to type Float
From type double to type Double
At run time, boxing conversion proceeds as follows:
If p is a value of type boolean, then boxing conversion converts p into a reference r of class and type Boolean, such that r.booleanValue() == p
If p is a value of type byte, then boxing conversion converts p into a reference r of class and type Byte, such that r.byteValue() == p
If p is a value of type char, then boxing conversion converts p into a reference r of class and type Character, such that r.charValue() == p
If p is a value of type short, then boxing conversion converts p into a reference r of class and type Short, such that r.shortValue() == p
If p is a value of type int, then boxing conversion converts p into a reference r of class and type Integer, such that r.intValue() == p
If p is a value of type long, then boxing conversion converts p into a reference r of class and type Long, such that r.longValue() == p
If p is a value of type float then:
If p is not NaN, then boxing conversion converts p into a reference r of class and type Float, such that r.floatValue() evaluates to p
Otherwise, boxing conversion converts p into a reference r of class and type Float such that r.isNaN() evaluates to true.
If p is a value of type double, then
If p is not NaN, boxing conversion converts p into a reference r of class and type Double, such that r.doubleValue() evaluates to p
Otherwise, boxing conversion converts p into a reference r of class and type Double such that r.isNaN() evaluates to true.
If p is a value of any other type, boxing conversion is equivalent to an identity conversion (5.1.1).
If the value p being boxed is true, false, a byte, a char in the range \u0000 to \u007f, or an int or short number between -128 and 127, then let r1 and r2 be the results of any two boxing conversions of p. It is always the case that r1 == r2
Good read - http://java.sun.com/docs/books/jls/third_edition/html/conversions.html#5.1.7