Java's eight primitive data types each have a corresponding wrapper class that allows them to be used as objects. The wrapper classes are in the java.lang package and include classes like Integer and Double. Wrapper classes "wrap" the primitive types in objects. For example, an Integer object holds an int value. Wrapper classes have methods to convert between the primitive type and its object representation.