Java/Типы данных: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 126:
</tt>
 
 
=== Обертки ===
Если требуется создать ссылку на один из примитивных типов данных, необходимо использовать соответствующий класс-обертку. Также в таких классах есть некоторые полезные методы и константы, например минимальное значение типа <tt>int</tt> можно узнать использовав константу <tt>Integer.MIN_VALUE</tt>. Оборачивание примитива в объект называется упаковкой (boxing), а обратный процесс распаковкой (unboxing).
{| class="wikitable"
|-
! Тип !! Класс-обертка
|-
| <tt>byte</tt> || <tt>Byte</tt>
|-
| <tt>short</tt> || <tt>Short</tt>
|-
| <tt>int</tt> || <tt>Integer</tt>
|-
| <tt>long</tt> || <tt>Long</tt>
|-
| <tt>char</tt> || <tt>Character</tt>
|-
| <tt>float</tt> || <tt>Float</tt>
|-
| <tt>double</tt> || <tt>Double</tt>
|-
| <tt>boolean</tt> || <tt>Boolean</tt>
|-
|}
Пример использования:
<source lang="java">
int i;
Строка 155 ⟶ 132 :
// Обычное создание объекта
boxed = new Integer(i);
//
// Фабричный метод
boxed = Integer.valueOf(i);
// Автоматическая упаковка, компилятор просто вставит вызов Integer.valueOf
boxed = i;
</source>
Рекомендуется использовать <tt>valueOf</tt>, он может быть быстрее и использовать меньше памяти потому что применяет кэширование, а конструктор всегда создает новый объект.
 
Получить примитив из объекта-обертки можно методом <tt><имя примитивного типа>Value</tt>.
<source lang="java">
Integer boxed;
int i;
// Явная распаковка
i = boxed.intValue();
// Автоматическая распаковка
i = boxed;
</source>
 
{{BookCat}}