Обертки: `Integer`, `Long`, `Byte`, `Short`, `Float`, `Double`, `Character`, `Boolean` Больше памяти и медленнее, но много полезным методов и являются объектами (можно использовать в дженериках) ## Автоупаковка/автораспаковка ```Java int primitive = 42; Integer wrapper; wrapper = primitive; // автоупаковка // на самом деле так wrapper = Integer.valueOf(primitive); primitive = wrapper + 1; // автораспаковка + сложение // на самом деле так privmitive = wrapper.intValue() + 1; ``` ## Тонкость с кешированием ```Java 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]]