Explore the JVM
The machine that runs Java, part by part. Specification: Java SE 25 · Implementation: OpenJDK HotSpot, JDK 25
- No component matches “”.
Drag to pan. Use the zoom buttons, Control or Command with the scroll wheel, or pinch to zoom. With the diagram focused, arrow keys pan, plus and minus zoom, and 0 fits the whole diagram. Tab moves between components; Enter or Space selects one.
Guided tour · 1 of 5
A map of the Java Virtual Machine
Every shape is a real part of the software machine that runs Java programs. The layout is simplified: positions and sizes are schematic, not a picture of memory.
Read me
Accuracy notes for this plate
Knowledge check
Check your understanding of JVM anatomy
8 questions. Answers are explained, right or wrong.
Primary sources
Where these facts come from
Every component cites its own sources in the inspector. These are the foundations of the whole plate.
- SpecJVMS §2.5 Run-Time Data Areas(opens in a new tab)
Defines the data areas used during program execution and which are per thread. · Java SE 25
- SpecJVMS §2.13 Public Design, Private Implementation(opens in a new tab)
Implementations may translate bytecode to native code and choose their own internals. · Java SE 25
- SpecJVMS §5.3 Creation and Loading(opens in a new tab)
Defining and initiating loaders; loading with the bootstrap and user-defined loaders. · Java SE 25
- SpecJVMS §5.4 Linking(opens in a new tab)
Verification, preparation and (optionally lazy) resolution. · Java SE 25
- SpecJVMS §5.5 Initialization(opens in a new tab)
Executing <clinit>; the conditions that trigger initialization and its locking procedure. · Java SE 25
- GuideHotSpot Virtual Machine Garbage Collection Tuning Guide(opens in a new tab)
Generations, ergonomics, and the G1, Parallel, Serial, Z and other collectors. · JDK 25
- SourcecompilationPolicy.hpp(opens in a new tab)
Tiered compilation levels 0–4 and the thresholds that move methods between them. · JDK 25 GA (tag jdk-25-ga)
- SpecJava Native Interface Specification(opens in a new tab)
JNIEnv, local and global references, native method registration and the Invocation API. · Java SE 25