~/talk

Revealing the magic behind Java annotations

Talkat DevBcn 2025 · 2025-07-08..07-10· [java, compilers-and-language-design]
links:none on file
slides:none on file

Explains concrete techniques: runtime discovery uses classpath scanning or bytecode readers like ClassGraph, proxies and code gen use ASM/Byte Buddy/ByteBuddy-style APIs or the new Class File API, and compile/build-time uses jandex + Gizmo or Java annotation processors to emit bytecode or sources. Calls out that Lombok mutates the AST and breaks incremental compilation and upgrades, and that Micronaut moves work to compile time so runtime has no reflection, yielding ~200ms JVM startup and ~8ms Graal native, used in production (Disney+) to cut costs.

AI-written summary · about

  1. 0:00Introduction and speaker background
  2. 3:38Why Java annotations matter
  3. 5:06Runtime annotation processing basics
  4. 10:00Runtime proxy generation techniques
  5. 19:38Problems with runtime processing
  6. 23:38Compile-time annotation processing
  7. 26:12Pluggable annotation processors
  8. 30:10Lombok’s technical issues
  9. 38:50Micronaut’s compile-time approach
  10. 43:06Timed example with Micronaut
  11. 46:07Startup time and memory benefits
  12. 49:19Q&A and closing remarks
~/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.