The first word, the GC header, describes the layout. It encodes on half a word the shape of the object, including where it contains further pointers, so that the GC can trace it. The other half contains GC flags (e.g. the mark bit of a mark-and-sweep GC). The second word is used for method dispatch. It is similar to a C++ vtable pointer. It points to static data that is mostly a table of methods (