@Override
    int headerSize() {
      try {
        return (int) HBasePlatformDependent
          .objectFieldOffset(HeaderSize.class.getDeclaredField("a"));
      } catch (NoSuchFieldException | SecurityException e) {
        LOG.error(e.toString(), e);
      }
      return super.headerSize();
    }
UnsafeLayout uses Unsafe to guesstimate the object-layout related parameters like object header
sizes and oop sizes See HBASE-15950.
hbase-common/src/main/java/org/apache/hadoop/hbase/util/ClassSize.java