Junior — Middle
Milyen helyet foglal a memória egy String osztályhoz tartozó objektum, amelyet a new operátorral hoztak létre?
sobes.tech MI
Válasz az MI-től
Объект String, созданный через оператор new, занимает в памяти место под объект Java, включая заголовок объекта, ссылку на массив символов и сам массив символов (char[]). В современных версиях Java (начиная с Java 9) строки хранятся в виде массива байтов (byte[]) с кодировкой Latin1 или UTF-16, что экономит память.
Примерно размер объекта складывается из:
- Заголовок объекта (обычно 12-16 байт)
- Ссылка на массив символов
- Сам массив символов (2 байта на символ для UTF-16 или 1 байт для Latin1)
Точный размер зависит от JVM и архитектуры (32 или 64 бит). Кроме того, строки в Java являются неизменяемыми, поэтому при создании нового объекта String с помощью new создаётся отдельный объект в куче, даже если такой же литерал уже существует в пуле строк.