Всем доброго дня,
У меня есть класс, который выглядит так:
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 байт?