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.