Based on the code sample from above, it would become quite tedious manually exchanging values from primitive types to objects and vice-versa.
Say hello to the concept of autoboxing and auto-unboxing!
Java autoboxing automatically encapsulates primitive data types into object state for us, Java also does the dirty work by auto-unboxing object state into a primitive value.
Autoboxing opens a whole new world of possibilities, especially in future concepts that utilize anything related to Generics.
Don't worry about Generics yet, I will discuss them when the time is right.
Here is the same thing as above with autoboxing ...
Integer ref = 41; // autobox the primitive int type value into an Integer object
int i = ref; // auto-unbox a primitive int value from an Integer object