Правильно ли я понял, что в типах данных int, short, long, float и double (то есть чьи размеры больше 1 байта), если значение занимает к примеру не 4 байта, а 1 байт, то оставшиеся 3 байта все равно заполняются "пустой информацией" или "пробелами"?
"Тип String может хранить большие объемы данных, поэтому это не просто тип данных, а полноценный класс". Не очень понятно объяснено почему именно класс, а не тип данных.
Предположу, что это связано с тем, что для String нельзя объявить в памяти фиксированное количество байт, т.к. строки могут быть любой длины?
Объясните, плиз
Anonymous #3073846
32 уровень
Вопрос по типам данных и их отображению в оперативной памятьи
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Павел
11 июня 2022, 08:18
Есть примитивный тип char, а ссылочный тип (или класс) String по сути это массив примитивов типа char.
0
Justinian Judge в Mega City One Master
10 июня 2022, 14:08
String это и класс, поскольку есть класс String, и тип.
Например есть класс Cat, который является ООП отображением сущности Кот.
Это будет и класс, и тип, если говорить о переменных или объектах. То есть что такое тип?
Тип это и есть соответствие некоторой модели данных, которая описывается в одноименном классе.
Есть тип данных Стринг. Он описывается в классе Стринг, все логично.
Например...Мерседес это марка или автомобиль? Это и то и то, с какой стороны посмотреть.
Насчет памяти, там бывают трики моменты, но в целом да, определенный размер резервируется под переменную согласно прейскуранта.
Но главное при этом четко понимать, что это нормально, у многих новичков на первых началах встречается тяга вместо int использовать short, или вместо double использовать float "для экономии", вот это неверно, поскольку на уровне компилятора и JVM , джава хорошо оптимизирует различные моменты, и часто логика с int будет работать либо быстрее, либо так же. Но точно никакого ущерба не будет в большинстве случаев.
Есть конечно отдельные случаи, но это уже на конкретных проектах и к тому времени человек сам будет понимать почему именно здесь нужно так. А до того времени не стоит забывать, что джава многие вещи оптимизирует, и является высокоуровневым языком, в котором мы фокусируемся на логике и архитектуре в первую очередь, а все необходимые правила относительно использования ресурсов - явно будут даны.
+2