Autoboxing

Unboxing is the opposite, but achieves the same goal - less code for the same functionality. It allows you to treat an Object wrapper for a primitive type as the primitive it represents, without calling a getValue method.

e.g.

Integer x = new Integer(2);
Integer y = new Integer(4);
Integer z = x + y;  // The value of z is now 6