Engineering a Modern Java Platform
summary
Move from JDK 8/11 to 21–25 and you hit concrete breakages: removed internal APIs, jdeps, jdeprscan, jnativescan flag every use of sun.misc.Unsafe and JNI so you have a fix list; -Xlog:exceptions=info and -XX:+PrintFlagsFinal expose swallowed exceptions and obsolete GC/security flags that stop the JVM starting. Expect data changes (UTF‑8 default, locale formatting), serialization UID shifts on recompilation, and the warning that 79 of 87 Unsafe methods are slated for removal. Run the JDK tools and OpenRewrite to automate fixes.
AI-written summary · about
chapters (9)
- 0:00Introduction to Java 8 to 25
- 2:21JDK diagnostic tools overview
- 10:23Runtime command line options
- 18:07Changes causing startup failures
- 22:06Runtime crashes and errors
- 31:51Subtle behavior changes
- 37:31Deprecated features and removals
- 42:05Migration recommendations
- 43:10Summary and Q&A
related talks
43mEngineering a Modern Java Platform
49mJDK 8 to 25 Without the Pain - Engineering a Modern Java Platform
47mJDK 9, 10, and 11: Pitfalls for the Unwary
46mJDK 9, 10 and 11: Pitfalls For The Unwary
27mModern Java: Change is the Only Constant
50mJDK 11: Pitfalls for the Unwary
51mJava Performance Update: From JDK 21 to JDK 25
49mPreparing for JDK 9 - AKA The Sharp Edges of JDK 9
