Содержание
По возможности старайтесь использовать примитивные типы вместо классов Wrapper.
Не все в Java является объектом. Существует специальная группа типов данных (также называемых примитивными типами), которые будут довольно часто использоваться в вашем программировании. Из соображений производительности разработчики языка Java решили включить эти примитивные типы.
Создание объекта с использованием new не очень эффективно, потому что new помещает объекты в кучу. Этот подход будет очень дорогостоящим для небольших и простых переменных. Вместо создания переменных с использованием new Java может использовать примитивные типы для создания автоматических переменных, которые не являются ссылками. Переменные содержат значение, и оно помещается в стек, поэтому оно намного эффективнее.
Java определяет размер каждого примитивного типа. Эти размеры не изменяются от одной машинной архитектуры к другой (как в большинстве других языков). Это одна из ключевых особенностей языка, которая делает Java такой переносимой.
Обратите внимание, что все числовые типы подписаны. (Без неподписанных типов).
Классы обертки великолепны. Но в то же время они медленные. Примитивные типы — это просто значения, тогда как классы Wrapper хранят информацию о полном классе.
Иногда программист может добавить ошибку в код с помощью оболочки из-за недосмотра. Например, в приведенном ниже примере:
|
1
2
3
4
5
6
7
8
|
ИНТ Икс знак равно 10 ;
ИНТ Y знак равно 10 ;
целое число x1 знак равно новый Целое число ( 10 ) ;
целое число y1 знак равно новый Целое число ( 10 ) ;
Система. вне. println ( x == у ) ;
Система. вне. println ( x1 == у1 ) ;
|
Первый Println будет печатать true, а второй — false. Проблема в том, что при сравнении двух объектов класса-обертки мы не можем использовать оператор ==. Он будет сравнивать ссылку на объект, а не его фактическое значение.
Также, если вы используете объект класса-оболочки, никогда не забывайте инициализировать его значением по умолчанию. По умолчанию все объекты класса-оболочки инициализируются в null ,
|
1
2
3
4
5
6
7
|
логический флаг ;
если ( флаг == правда ) {
Система. вне. println ( «Флаг установлен» ) ;
} еще {
Система. вне. println ( «Флаг не установлен» ) ;
}
|
Приведенный выше код даст NullPointerException так как он пытается упаковать значения перед сравнением с истиной и в качестве его нуля.
Удобный справочник:
0.00 (0%) 0 votes








