Skip to content

Wrapper Classes Summary

Wrapper Class Concept

  • Classes that encapsulate primitive types
  • Convert primitives to objects
  • Provide utility methods
  • Enable use of primitives in generic code
  • Example:
    Integer i = new Integer(42);  // wraps int
    Double d = new Double(3.14);  // wraps double
    

Java Wrapper Classes

Primitive Wrapper
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

Auto-boxing and Unboxing

  • Auto-boxing: Automatic primitive to wrapper conversion
  • Unboxing: Automatic wrapper to primitive conversion
  • Example:
    Integer i = 42;    // auto-boxing
    int n = i;         // unboxing
    

Performance Considerations

  • Wrapper objects have overhead
  • Creating new wrapper objects is expensive
  • Example of inefficient code:
    Double sum = 0.0;
    for (int i = 0; i < 1000000; i++) {
      sum += i;  // creates new Double object each time
    }
    

Utility Methods

  • Parsing methods
  • Value conversions
  • Comparisons
  • Example:
    Integer.parseInt("123");     // String to int
    Integer.toString(123);       // int to String
    Integer.valueOf("123");      // String to Integer
    Integer.compare(1, 2);       // compare two ints
    

Best Practices

  • Use primitives for performance-critical code
  • Use wrappers when objects are required
  • Be aware of auto-boxing overhead
  • Use static utility methods when possible
  • Consider memory usage in collections
  • Avoid null wrapper objects