"mprove startup time by making the classes of an application instantly available, in a loaded and linked state, when the HotSpot Java Virtual Machine starts. Achieve this by monitoring the application during one run and storing the loaded and linked forms of all classes in a cache for use in subsequent runs. Lay a foundation for future improvements to both startup and warmup time."
🧠 JEP 483: Ahead-of-Time Class Loading & Linking
🔍 What is it?
JEP 483 introduces a new way to pre-link Java classes during application build or testing — before your app even starts.
It extends the existing CDS (Class Data Sharing) system by allowing the JVM to record and cache class linking steps, like:
Bytecode verification
Constant pool resolution
Method/field linking
📜 CDS (Class Data Sharing) was first introduced in:
Java 5 (JDK 1.5), released in 2004.
✅ Quick Timeline
Version
Feature/Change
Java 5 (2004)
CDS introduced for core JDK classes only (boot classpath)
Java 9 (2017)
AppCDS added: support for user-defined classes in the archive
Java 13+
CDS improved with support for dynamic archiving (recording class list at runtime)
Java 21+
Continuous improvements in heap object archiving, layered archives, and module support
Java 24 (JEP 483)
Ahead-of-Time class linking cache added as a separate optimization
🛠 How it works (in 3 steps)
Record linking behavior during app execution
-XX:AOTMode=record
Create a binary cache of that data
-XX:AOTMode=create
Run your app with that prelinked cache
-XX:AOTMode=on -XX:AOTCache=...