Размер заголовка объекта в Java на 64-битной виртуальной машине с <4 ГБ ОЗУ

Я хотел знать, есть ли какой-нибудь способ заставить 64-битную виртуальную машину использовать 8-байтовые заголовки объекта вместо 12-байтовых заголовков объекта, если полезная память для JVM в любом случае равна 4 ГБ.

Или это так в Linux, если не в Windows? Может ли кто-нибудь проверить это с помощью этого кода?

import java.lang.reflect.Field;
import sun.misc.Unsafe;
public class ObjectSizes {
    String s1;
    String s2;
    public static void main(String[] args) throws Exception {
        Unsafe unsafe;
        try {
            Field field = Unsafe.class.getDeclaredField("theUnsafe");
            field.setAccessible(true);
            unsafe = (Unsafe)field.get(null);
        } catch (Exception ex) {
            throw new RuntimeException("Can't get Unsafe instance.", ex);
        }
        Field s1Field = ObjectSizes.class.getDeclaredField("s1");
        Field s2Field = ObjectSizes.class.getDeclaredField("s2");
        long s1OffSet = unsafe.objectFieldOffset(s1Field);
        long s2OffSet = unsafe.objectFieldOffset(s2Field);
        System.out.println("We are running "+System.getProperty("java.version"));
        System.out.println("Object header size is "+s1OffSet+" bytes.");
        System.out.println("Object reference size is "+(s2OffSet-s1OffSet)+" bytes.");
    }
}

Ответы на вопрос(3)

Ваш ответ на вопрос