Making Java More Dynamic
summary
Explains how runtime code generation brings dynamic features to Java by generating or transforming classes at load time or build time, using Java agents and Instrumentation to inject checks, timers or proxies. Compares low-level ASM vs higher-level libraries like ASM, Javassist, cglib and promotes Byte Buddy (used by Hibernate and Mockito, ~20 million downloads/month), shows method delegation, advice (copy‑paste enter/exit), build‑time plugins, discusses Java 9 module issues and claims near zero runtime overhead once classes are generated.
AI-written summary · about
chapters (10)
- 0:00Introduction to runtime codegen
- 7:09Why Java bytecode enables runtime codegen
- 18:26Java bytecode fundamentals
- 27:33Generating bytecode with ASM
- 30:43Byte Buddy library overview
- 37:19Hot swapping and Java agents
- 42:58Advice-based instrumentation
- 46:51Build-time instrumentation benefits
- 50:00Performance and future trends
- 53:27Conclusion and Q&A
related talks
55mMaking Java more dynamic
45mMaking Java more dynamic
50mRevealing the magic behind Java annotations
18mThe Hidden Dynamic Life of Java
15mThe Hidden Dynamic Life of Java
53mWell there's your problem! Your engine's missing! A look under Java's hood
55mLiving in the Matrix with Bytecode Manipulation
46mJava annotation processing magic for muggles
