Wrapper Classes
Java defines a “wrapper” class for each of the primitive data types.
Primary reason is that primitive data types are not objects, thus cannot be assigned to a value of type Object, and hence cannot be stored in any of the standard data structures.
In C++, template classes and functions eliminate most of the need for wrapper classes.