Ответ
Примитивные типы в Java — это базовые типы данных, которые хранят значения напрямую, а не через ссылки. Они не являются объектами и не имеют методов.
8 примитивных типов:
byte(8 бит),short(16 бит),int(32 бит),long(64 бит) — целые числаfloat(32 бит),double(64 бит) — числа с плавающей точкойchar(16 бит) — символ Unicodeboolean(JVM-зависимый) —true/false
Особенности:
- Работают быстрее, чем объекты (
Integer,Doubleи т.д.) - Имеют значения по умолчанию (например,
int→0,boolean→false) - Автоматически упаковываются (
autoboxing) в объекты при необходимости
Пример:
int number = 42; // Примитив
Integer boxed = number; // Автоупаковка (autoboxing) Ответ 18+ 🔞
А, ну вот, опять эти примитивные типы, ебать мои старые костыли! Сидишь такой, пишешь код, а тут — бац — и вспоминаешь, что в Java, оказывается, не всё объекты, есть ещё какая-то древняя магия под капотом.
Короче, слушай сюда. Есть в Java такие базовые штуки, как примитивные типы. Это не объекты, ёпта. Это как бы голые значения, которые тупо лежат в памяти, без всяких там ссылок, методов и прочего овердохуища сложностей. Просто число, символ или флаг «да/нет». И всё.
Их всего восемь, запомнить не проблема, если не пить с утра:
byte,short,int,long— это всё для целых чисел, просто размер памяти под них разный, от крошечногоbyteдо здоровенногоlong.floatиdouble— для чисел с запятой, которые плавают.doubleточнее, но и места жрёт больше.char— для одного символа, типа буквы.boolean— ну, тут всё ясно,trueилиfalse. Хотя, блядь, размер его под капотом — это отдельная песня, зависит от JVM.
В чём их фишка, спросишь? А фишка в том, что они быстрые, сука! Работать с ними — одно удовольствие для процессора, потому что не надо лазить по ссылкам и разворачивать объекты. Плюс у них есть значения по умолчанию. Объявил int count; и всё, там уже ноль сидит, не null. С объектами-то обломаешься — null везде, а тут — порядок.
Но жизнь не сахар, и иногда этим примитивам приходится притворяться объектами. Например, когда суёшь их в ArrayList, который с объектами только и работает. Вот тут Java включает режим «автоупаковки» (autoboxing). Она берёт твой голый int, запихивает его в красивую обёртку Integer — и вуаля, уже можно в коллекцию. А когда достаёшь обратно — сама же и распаковывает. Удобно, конечно, но за удобство, как водится, платишь производительностью, чувак.
Вот смотри, как это выглядит в коде, тут всё просто:
int number = 42; // Всё, примитив. Быстро и сердито.
Integer boxed = number; // А тут Java сама сделала autoboxing. Завернула примитив в объект.
Вот и вся история. Не объекты, а так, фундамент, на котором всё держится. Быстро, дёшево, но без наворотов. Иногда — именно то, что нужно.