7. JUSTSYSTEMS Javaオブジェクトの構造 /* フィールドのオフセットをsun.misc.Unsafe.objectFieldOffset()で取得すると、 管理用データのサイズを反映した値が返る */ class A { public int a; }; ... Unsafe unsafe = ...(略); // sun.misc.Unsafeの”theUnsafe”をリフレクションで取得 Field aField = A.class.getDeclaredField(“a”); // class Aのフィールドaを取得 long offset = unsafe.objectFieldOffset(aField); // フィールドaのオフセットを取得 // 32bitVMで8 (4 + 4) // 64bitVM -XX:+UseCompressedOopsで12 (