Классы-обертки
Обертки: Integer, Long, Byte, Short, Float, Double, Character, Boolean
Больше памяти и медленнее, но много полезным методов и являются объектами (можно использовать в дженериках)
Автоупаковка/автораспаковка
int primitive = 42;
Integer wrapper;
wrapper = primitive; // автоупаковка
// на самом деле так
wrapper = Integer.valueOf(primitive);
primitive = wrapper + 1; // автораспаковка + сложение
// на самом деле так
privmitive = wrapper.intValue() + 1;
Тонкость с кешированием
Integer int1 = 42;
Integer int2 = 42;
int1==int2; // true
int1 = 452;
int2 = 452;
int1==int2; // false
Для интов значения от -128 до 127 - кешируются, поэтому сравнение сработало
Но лучше всегда через equals(), так как работаем с объектами
Иерархия
Все обертки - потомки Number
Методы Number:
intValue()byteValue()shortValue()longValue()floatValue()doubleValue()
Заметка о Character