Это пятый день моего участия в ноябрьском испытании обновлений, подробности о мероприятии:Вызов последнего обновления 2021 г.
Важное примечание: эта статья является одной из серии статей блоггера «Избранные вопросы для интервью — основы», ознакомьтесь с серией статей об интервью.пожалуйста следуйте за мной. Адрес с открытым исходным кодом Gitee:git ee.com/oppo/inter V…
Java — это язык со строгой типизацией данных, поэтому все свойства должны иметь тип данных. Как и в супермаркете Metro, если вы хотите отправиться за покупками, у вас сначала должна быть членская карта (проведите картой, чтобы войти).
PS: Java 10 имеет вывод типа локальной переменной, вы можете использовать var для замены определенного типа данных, но на этапе байт-кода переменные Java по-прежнему имеют четкий тип данных, а вывод типа локальной переменной имеет много ограничений и несоответствий. не текущая основная версия приложения, поэтому здесь она не будет подробно обсуждаться.
Возвращаясь к теме, чтобы понять разницу между int и Integer, мы должны начать с основных типов данных Java.
базовый тип данных
Всего в Java существует 8 примитивных типов, включая 4 целочисленных типа, 2 типа с плавающей запятой, 1 символьный тип char, используемый для представления кодировки Unicode, и 1 логический тип, используемый для представления значений true и false.
- 4 целочисленных типа: int, short, long, byte
- 2 типа с плавающей запятой: float, double
- Тип персонажа: символ
- истинный и ложный тип: логический
Базовый тип данных относится к неделимому атомарному типу данных.Значение этого типа хранится непосредственно в памяти, и к данным можно получить прямой доступ через адрес памяти, и эта область памяти может хранить только значение этого типа.int — распространенный базовый тип данных в Java..
Классы упаковки и их роль
Поскольку концепция дизайна Java заключается в том, что все является объектом, во многих случаях с ним нужно работать в форме объекта, например, hashCode() для получения хеш-значения или getClass() для получения класса.
Роль упаковки
В Java каждый базовый тип данных соответствует классу-оболочке, иКласс-оболочка, соответствующий int, является Integer.,Существование класса-оболочки решает проблемы параметров универсального типа, сериализации, преобразования типов, высокочастотного интервального кэширования данных и т. д., которые не могут быть решены базовыми типами данных..
базовый тип | тип упаковки |
---|---|
int | Integer |
short | Short |
byte | Byte |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
Разница между целым числом и целым числом
Разница между int и Integer в основном отражается в следующих аспектах:
- Типы данных разные: int — базовый тип данных, а Integer — тип данных-оболочка;
- Значения по умолчанию разные: значение по умолчанию для int равно 0, а значение по умолчанию для Integer равно null;
- Способ хранения в памяти разный: int напрямую хранит значения данных в памяти, а Integer фактически хранит ссылки на объекты, при создании нового Integer фактически генерируется указатель на этот объект;
- Способ создания экземпляра другой: Integer должен быть создан, прежде чем его можно будет использовать, в то время как int не требуется;
- Переменные сравниваются по-разному: int может использовать == для сравнения двух переменных на равенство, в то время как Integer должен использовать equals для сравнения двух переменных на равенство.
Суммировать
Integer — это класс-оболочка int, и их различия в основном отражаются в пяти аспектах: разные типы данных, разные значения по умолчанию, разные способы хранения в памяти, разные способы создания экземпляров и разные способы сравнения переменных. Существование класса-оболочки решает проблемы параметров универсального типа, сериализации, преобразования типов и высокочастотного интервального кэширования данных, которые не могут быть выполнены базовыми типами данных.
Ссылки и благодарности
«Эффективный код: руководство по разработке на Java»
Обратите внимание на официальный аккаунт: анализ реальных вопросов Java-интервью, см. больше вопросов Java-интервью.