Skip to content

Instantly share code, notes, and snippets.

@Hccake
Forked from arturmkrtchyan/ObjectHeader32.txt
Created September 19, 2023 17:19
Show Gist options
  • Select an option

  • Save Hccake/c468cecea539a2b9736dafab871cfca5 to your computer and use it in GitHub Desktop.

Select an option

Save Hccake/c468cecea539a2b9736dafab871cfca5 to your computer and use it in GitHub Desktop.
Java Object Header
|----------------------------------------------------------------------------------------|--------------------|
| Object Header (64 bits) | State |
|-------------------------------------------------------|--------------------------------|--------------------|
| Mark Word (32 bits) | Klass Word (32 bits) | |
|-------------------------------------------------------|--------------------------------|--------------------|
| identity_hashcode:25 | age:4 | biased_lock:1 | lock:2 | OOP to metadata object | Normal |
|-------------------------------------------------------|--------------------------------|--------------------|
| thread:23 | epoch:2 | age:4 | biased_lock:1 | lock:2 | OOP to metadata object | Biased |
|-------------------------------------------------------|--------------------------------|--------------------|
| ptr to lock record:30 | lock:2 | OOP to metadata object | Lightweight Locked |
|-------------------------------------------------------|--------------------------------|--------------------|
| ptr to heavyweight monitor:30 | lock:2 | OOP to metadata object | Heavyweight Locked |
|-------------------------------------------------------|--------------------------------|--------------------|
| | lock:2 | OOP to metadata object | Marked for GC |
|-------------------------------------------------------|--------------------------------|--------------------|
|------------------------------------------------------------------------------------------------------------|------------------|
| Object Header (128 bits) | State |
|------------------------------------------------------------------------------|-----------------------------|------------------|
| Mark Word (64 bits) | Klass Word (64 bits) | |
|------------------------------------------------------------------------------|-----------------------------|------------------|
| unused:25 | identity_hashcode:31 | unused:1 | age:4 | biased_lock:1 | lock:2 | OOP to metadata object | Normal Object |
|------------------------------------------------------------------------------|-----------------------------|------------------|
| thread:51 | epoch:2 | unused:1 | age:4 | biased_lock:1 | lock:2 | OOP to metadata object | Biased Object |
|------------------------------------------------------------------------------|-----------------------------|------------------|
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment