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