Before J2SE 1.5, Java had primtive data types with wrappers around them, so programmers had to convert from one type to another manually:
public void manualConversion() {int a = 12;Integer b = Integer.valueOf(a);int c = b.intValue();}// --------------------------
Thankfully, J2SE 1.5 comes with a feature called Autoboxing and Unboxing. This eliminates the pain of manual conversion between primitives and wrappers. Behind the scenes, the compiler creates code to implicitly create objects for you:
public void autoBoxing() {int a = 12;Integer b = a;int c = b;}// -------------------------
Remember: Boxing and unboxing too many values can make your garbage collector go mad.