Month 2 - JVM & Bytecode (Weeks 5–8)¶
Month 1 made you fluent in modern Java. Month 2 makes you literate in what java actually does when it runs your code. By the end you should be able to read a -XX:+PrintCompilation log, decode a javap -v listing, and explain why your hot loop got deoptimized.
Weeks¶
- Week 5 - Class Loading and Bytecode
- Week 6 - The JIT: C1, C2, Graal, Tiered Compilation
- Week 7 - Method Handles, VarHandles, and Reflection
- Week 8 - JMH and Microbenchmarking
Month 2 Exit Criteria¶
You can:
- Read javap -v for any method and trace its execution on the JVM stack machine.
- Explain tiered compilation, inlining, escape analysis, and deoptimization without notes.
- Pick the right tool from {reflection, MethodHandle, VarHandle, Panama} for a given problem.
- Write a non-embarrassing JMH benchmark and defend the methodology.
- Articulate the trade-off between JIT-warmed HotSpot and GraalVM native-image for a specific workload.
You are now ready for Month 3 - memory and garbage collection.