~/talk

Unveiling the Hidden Layers of Java Class Files Beyond Bytecode

Talkat Devnexus 2025 · 2025-03-04..03-06· [compilers-and-language-design, java]
links:none on file
slides:none on file

Shows how to read class files with javap -c -b and spot ACC_SYNTHETIC and ACC_BRIDGE entries, explains that compilers emit synthetic and bridge methods (covariant returns) and that JDK 11 introduces NestHost/NestMembers to replace synthetic accessors, contrasts pre-11 synthetic accessors with nestmates, and traces string concatenation moving to invokeDynamic (bootstrap concat factory). Demonstrates a JDK22 compilation bug that uses ~1.1 GB and ~225 s with C2 (fixed in JDK23) and describes the inline hidden class strategy that cuts compile memory to ~6 MB and ~0.3 s.

AI-written summary · about

  1. 0:00Introduction and welcome
  2. 1:28What are Java class files
  3. 2:55Using javap to inspect class files
  4. 4:26Why explore class file details
  5. 5:07Source files vs class files
  6. 6:34Synthetic methods in Java
  7. 8:43Bytecode instruction types
  8. 10:32Synthetic methods in inner classes
  9. 13:52Nestmates in JDK 11
  10. 16:31Class file changes in JDK 23
  11. 21:34String concatenation before InvokeDynamic
  12. 23:40How InvokeDynamic works
  13. 26:55InvokeDynamic and string concatenation
  14. 28:52Benefits of InvokeDynamic
  15. 30:19Updating Java versions for performance
  16. 31:02Summary and closing
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.