Закрепление объекта путем изменения битов в слове маски заголовка объекта
Мне было интересно, можно ли предотвратить перемещение объекта с помощью GC, установив один из битов в слове метки заголовка объекта (пытаясь обмануть GC).
Поэтому я хотел бы знать, можно ли таким образом гарантировать, что помеченный объект всегда имеет один и тот же адрес памяти.
1 ответ
Решение
Нет, HotSpot JVM не поддерживает закрепление объектов в любой форме, даже внутри JVM.
Не пытайтесь изменить заголовок объекта. В противном случае JVM может потерпеть крах. Содержимое заголовка может варьироваться в зависимости от версии JVM, аргументов и выбранного алгоритма GC. JVM полностью контролирует заголовок объекта и не готов к внешним изменениям.