public static long sizeOf(Object object) { Unsafe unsafe = getUnsafe(); // Original : return unsafe.getAddress( normalize( unsafe.getInt(object, 4L) ) + 12L ); // This is my elaborate breakdown of original one liner int addressOfKlassInObjectHeader = unsafe.getInt(object, 4L); long nativeAddressOfKlass = normalize(addressOfKlassInObjectHeader); long addressOfLayoutHelper = nativeAddressOfKlass + 12L; return unsafe.getAddress(addressOfLayoutHelper); } public static long normalize(int value) { if(value >= 0) return value; return (~0L >>> 32) & value; }