Primitive wrapper class
A primitive wrapper class in the Java and ActionScript programming languages is one of eight classes provided in the
java.lang package to provide object methods for the eight primitive types. All of the primitive wrapper classes in Java are immutable. J2SE 5.0 introduced autoboxing of primitive types into their wrapper object, and automatic unboxing of the wrapper objects into their primitive value—the implicit conversion between the wrapper objects and primitive values.
Wrapper classes are used to represent primitive values when an
Object is required. The wrapper classes are used extensively with
Collection classes in the
java.util package and with the classes in the
java.lang.reflect reflection package.
The primitive wrapper classes and their corresponding primitive types are:
Primitive type Wrapper class Constructor Arguments
The wrapper classes
BigInteger are not one of the primitive wrapper classes and are mutable.
Although it is not a wrapper class, the
Void class is similar in that it provides an object representation of the
void return. "The
Void class is an uninstantiable placeholder class used by the
java.lang.reflect API to hold a reference to the
Class object representing the Java keyword
void."(Javadoc for Void)
Atomic wrapper classes
With Java 5.0, additional wrapper classes were introduced in the
java.util.concurrent.atomic package. These classes are mutable and cannot be used as a replacement for the regular wrapper classes. Instead, they provide atomic operations for addition, increment and assignment.
The atomic wrapper classes and their corresponding types are:
Primitive type Wrapper class
AtomicLong classes are subclasses of the
Number class. The
AtomicReference class accepts the type parameter
V that specifies the type of the object reference. (See "Generics in Java" for a description of type parameters in Java).
- David O'Meara (2003-04). "Mutable and Immutable Objects: Which classes are Immutable?". Java Ranch. Retrieved 2012-05-14. "The classes java.math.BigInteger and BigDecimal are not immutable either, although maybe they should have been."