== JDK 25 java 25.0.4.1 compact headers: false id offset 16 priceCents offset 12 stock offset 24 active offset 28 sku offset 32 first field starts at byte 12 (so the header is at most 12 bytes) a hard-coded 12-byte header would be right here == JDK 26 java 26.0.2.1 compact headers: false id offset 16 priceCents offset 12 stock offset 24 active offset 28 sku offset 32 first field starts at byte 12 (so the header is at most 12 bytes) a hard-coded 12-byte header would be right here == JDK 27 java 27 compact headers: true id offset 8 priceCents offset 16 stock offset 20 active offset 24 sku offset 28 first field starts at byte 8 (so the header is at most 8 bytes) a hard-coded 12-byte header would be WRONG here == JDK 27 -XX:-UseCompactObjectHeaders java 27 compact headers: false id offset 16 priceCents offset 12 stock offset 24 active offset 28 sku offset 32 first field starts at byte 12 (so the header is at most 12 bytes) a hard-coded 12-byte header would be right here