Сколько байт в памяти занимает примитивный тип int в Java?

Ответ

В Java примитивный тип int всегда занимает ровно 4 байта (32 бита). Это гарантировано спецификацией языка Java (JLS) и не зависит от операционной системы или разрядности платформы (32/64-битной).

Проверка:

int example = 100;
System.out.println("Размер int в байтах: " + Integer.BYTES); // Выведет: 4
System.out.println("Размер int в битах: " + Integer.SIZE);   // Выведет: 32

Размеры других целочисленных примитивов в Java:

  • byte — 1 байт (8 бит)
  • short — 2 байта (16 бит)
  • int — 4 байта (32 бита)
  • long — 8 байт (64 бита)

Важное уточнение: Это размер примитива в памяти. При использовании в составе объекта или массива может добавляться служебная информация (overhead) для выравнивания (alignment), но сам int остается 4-байтовым.

Ответ 18+ 🔞

А, ну это классика, блядь! Сидишь такой, пишешь на Java, и тут бац — вопрос про размер int. А сосед по open space, этот, с умным видом так: "Ну это ж зависит от системы, 32-битная у тебя или 64-битная, там всё плавает, блядь!"

И вот тут, сука, самое время ебануть его учебником по JLS (Java Language Specification, для распиздяев) по голове! Потому что в Java, ёпта, всё чётко и жёстко, как у попа в бане. Примитивный int — это всегда, блядь, ровно 4 байта. Тридцать два бита, Карл! Ни больше, ни меньше. Хоть на калькуляторе считай, хоть на суперкомпе — везде одно и то же.

Вот смотри, как проверить, чтоб не быть, прости господи, полупидором, который верит в сказки:

int example = 100;
System.out.println("Размер int в байтах: " + Integer.BYTES); // Выведет: 4
System.out.println("Размер int в битах: " + Integer.SIZE);   // Выведет: 32

Видишь? Integer.BYTES — это тебе не хуй с горы, это константа, которая и возвращает эту самую четвёрку. Гарантия от создателей языка, блядь. В рот меня чих-пых!

И чтобы уж совсем мозг не взорвался от неожиданности, вот тебе шпаргалка по остальным целочисленным типам, которые тоже, как ни странно, имеют фиксированный размер:

  • byte — 1 байт. Маленький, юркий, как таракан.
  • short — 2 байта. Уже посерьёзнее.
  • int — 4 байта. Наш герой, рабочая лошадка.
  • long — 8 байт. Тяжеловес, для когда int уже не влазит, блядь.

И да, важный момент, чтобы потом не было волнения ебать: это размер самого примитива в памяти. Когда ты его в объект засовываешь или в массив пихаешь, там, конечно, JVM может ещё какую-то свою служебную хуйню добавить для красоты и выравнивания. Но сам по себе int — это всегда те самые честные 4 байта. Как отмерено, так и отрезано. Всё, вопрос закрыт, можно идти пить чай.