Добрый день всем,
У меня есть класс, который выглядит так:
public class Grapheme {
public Grapheme(int[] code_points) {
this.code_points = code_points;
}
int[] code_points;
}
Из ссылки , предоставленной bdonlan ниже , я понимаю, что обычно для объекта Grapheme требуется 8 байтов для заголовка объекта, 4 байта для переменной code_points
(тип которой равен ссылка ) и 4 байта заполнения.
Поэтому, если я создаю экземпляр Grapheme с использованием кода new Grapheme(null)
, для этого экземпляра Grapheme обычно требуется 16 байтов. Поскольку то, является ли это 16 байтами, зависит от реализации, с этого момента я буду ссылаться на это число как x байтов.
В основном мне было интересно, если я создам n число графем, передавая null
в конструктор Grapheme(int[])
для всех из них, и сохраню эти графемы в массиве длиной n
Будет ли общая память, необходимая для выполнения (для хранения экземпляров Grapheme), строго n * x байт?
Или есть какой-либо шанс , что JVM может попытаться выполнить некоторые магические оптимизации, чтобы требуемая память была ниже n * x байтов?