x

Классы-обертки

Обертки: 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

Left-click: follow link, Right-click: select node, Scroll: zoom
x