Sources
References
Every technically important claim in JVM Atlas cites one of these 123 sources. Specifications are Java SE 25; implementation details are OpenJDK HotSpot, JDK 25. Examples were run with OpenJDK 25.0.4 on Linux x64.
Specifications (41)
The normative definitions: what every conforming JVM and Java compiler must do.
- JVMS §2.5 Run-Time Data Areas(opens in a new tab)
Defines the data areas used during program execution and which are per thread.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Java Virtual Machine, Runtime data areas, Java thread
- JVMS §2.5.1 The pc Register(opens in a new tab)
Each thread has its own pc register; undefined while a native method runs.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: PC register
- JVMS §2.5.2 Java Virtual Machine Stacks(opens in a new tab)
Per-thread stacks of frames; StackOverflowError and OutOfMemoryError conditions.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: JVM stack
- JVMS §2.5.3 Heap(opens in a new tab)
Shared heap for all class instances and arrays, reclaimed by automatic storage management.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Heap, Garbage collector
- JVMS §2.5.4 Method Area(opens in a new tab)
Shared per-class structures; "logically part of the heap", location not mandated.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Method area
- JVMS §2.5.5 Run-Time Constant Pool(opens in a new tab)
Per-class run-time representation of the constant_pool table.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Run-time constant pool
- JVMS §2.5.6 Native Method Stacks(opens in a new tab)
Conventional "C stacks" used to support native methods.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Native method stack
- JVMS §2.6 Frames(opens in a new tab)
A frame is created per method invocation and destroyed when it completes.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Stack frame
- JVMS §2.6.1 Local Variables(opens in a new tab)
Array of local variables sized at compile time; long and double use two slots.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Local variable array
- JVMS §2.6.2 Operand Stacks(opens in a new tab)
LIFO operand stack with a maximum depth fixed at compile time.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Operand stack
- JVMS §2.6.3 Dynamic Linking(opens in a new tab)
Each frame refers to the run-time constant pool of the current method's class.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Frame data
- JVMS §2.6.4 Normal Method Invocation Completion(opens in a new tab)
Return values and restoring the invoker's state.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Frame data
- JVMS §2.6.5 Abrupt Method Invocation Completion(opens in a new tab)
Completion by an uncaught exception.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Frame data
- JVMS §2.7 Representation of Objects(opens in a new tab)
The JVM does not mandate any particular internal structure for objects.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Heap
- JVMS §2.9 Special Methods(opens in a new tab)
Instance initialization methods <init> and class initialization methods <clinit>.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Initialization
- JVMS §2.11 Instruction Set Summary(opens in a new tab)
Opcodes, operands and the inner loop of a JVM interpreter.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Execution engine, Interpreter
- JVMS §2.13 Public Design, Private Implementation(opens in a new tab)
Implementations may translate bytecode to native code and choose their own internals.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Java Virtual Machine, Runtime data areas, Execution engine, JIT compiler, CPU
- JVMS §4.1 The ClassFile Structure(opens in a new tab)
Magic number, versions, constant pool, fields, methods and attributes.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Build time, Class file
- JVMS §4.4 The Constant Pool(opens in a new tab)
Constant pool entry kinds such as Class, Fieldref, Methodref and String.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Class file, Run-time constant pool
- JVMS §4.10 Verification of class Files(opens in a new tab)
Type checking with StackMapTable frames and the constraints a class file must meet.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Verification
- JVMS §5.1 The Run-Time Constant Pool(opens in a new tab)
How symbolic references in the class file become run-time constant pool entries.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Resolution, Run-time constant pool
- JVMS §5.2 Java Virtual Machine Startup(opens in a new tab)
The initial class is created by the bootstrap loader or an implementation-defined loader.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: java launcher
- JVMS §5.3 Creation and Loading(opens in a new tab)
Defining and initiating loaders; loading with the bootstrap and user-defined loaders.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Class loader subsystem, Loading
- JVMS §5.3.1 Loading Using the Bootstrap Class Loader(opens in a new tab)
The bootstrap loader searches for a class representation in an implementation-dependent way.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Bootstrap class loader
- JVMS §5.3.2 Loading Using a User-defined Class Loader(opens in a new tab)
loadClass, defineClass, and the loader recorded as initiating or defining.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Custom class loaders
- JVMS §5.3.4 Loading Constraints(opens in a new tab)
Constraints that keep type safety when classes are visible through different loaders.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Parent delegation
- JVMS §5.3.5 Deriving a Class from a class File Representation(opens in a new tab)
Format checks, superclass loading, and LinkageError / ClassFormatError conditions.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Loading
- JVMS §5.3.6 Modules and Layers(opens in a new tab)
Run-time modules, layers and how class loaders map to them.
Oracle · Java Virtual Machine Specification · Java SE 25
- JVMS §5.4 Linking(opens in a new tab)
Verification, preparation and (optionally lazy) resolution.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Class loader subsystem, Linking
- JVMS §5.4.1 Verification(opens in a new tab)
Ensures the binary representation of a class is structurally correct.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Verification
- JVMS §5.4.2 Preparation(opens in a new tab)
Creates static fields and initializes them to default values.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Preparation
- JVMS §5.4.3 Resolution(opens in a new tab)
Dynamically determines concrete values from symbolic references.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Resolution
- JVMS §5.5 Initialization(opens in a new tab)
Executing <clinit>; the conditions that trigger initialization and its locking procedure.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Class loader subsystem, Preparation, Initialization
- JVMS §5.6 Binding Native Method Implementations(opens in a new tab)
Integrating native code so a native method can be invoked.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Native libraries, Native interface, JNI
- JVMS §6.5 new(opens in a new tab)
Creates a new object; may trigger resolution and initialization of the class.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Operand stack
- JVMS §6.5 invokespecial(opens in a new tab)
Invokes instance initialization methods, private methods and superclass methods.
Oracle · Java Virtual Machine Specification · Java SE 25
Cited by: Operand stack
- JLS §12.1 Java Virtual Machine Startup(opens in a new tab)
Loading, linking and initializing the initial class, then invoking main.
Oracle · Java Language Specification · Java SE 25
Cited by: java launcher
- JLS §12.4.1 When Initialization Occurs(opens in a new tab)
The exact events that trigger class or interface initialization.
Oracle · Java Language Specification · Java SE 25
Cited by: Class loader subsystem, Initialization
- JLS §12.6 Finalization of Class Instances(opens in a new tab)
Reachability terminology and the (deprecated) finalization mechanism.
Oracle · Java Language Specification · Java SE 25
Cited by: Local variable array, Garbage collector, GC roots
- JLS §12.7 Unloading of Classes and Interfaces(opens in a new tab)
Unloading is permitted, and only when the defining loader is reclaimable.
Oracle · Java Language Specification · Java SE 25
Cited by: Custom class loaders, Unloading
- Java Native Interface Specification(opens in a new tab)
JNIEnv, local and global references, native method registration and the Invocation API.
Oracle · Java SE 25
Cited by: Native method stack, Native interface, JNI, System calls
OpenJDK source code (43)
HotSpot and JDK sources at tag jdk-25-ga, cited for implementation-specific behaviour.
- BuiltinClassLoader.java(opens in a new tab)
loadClassOrNull: module-aware lookup, then parent delegation, then class path.
OpenJDK source · src/java.base/share/classes/jdk/internal/loader/BuiltinClassLoader.java · JDK 25 GA (tag jdk-25-ga)
Cited by: Parent delegation
- ClassLoaders.java(opens in a new tab)
Creates the platform and application (system) class loaders.
OpenJDK source · src/java.base/share/classes/jdk/internal/loader/ClassLoaders.java · JDK 25 GA (tag jdk-25-ga)
Cited by: Platform class loader, Application class loader
- module-loader-map.conf(opens in a new tab)
Which JDK modules are defined by the boot loader and which by the platform loader.
OpenJDK source · make/conf/module-loader-map.conf · JDK 25 GA (tag jdk-25-ga)
Cited by: Bootstrap class loader, Platform class loader
- NativeLibraries.java(opens in a new tab)
Loading native libraries and finding JNI symbols.
OpenJDK source · src/java.base/share/classes/jdk/internal/loader/NativeLibraries.java · JDK 25 GA (tag jdk-25-ga)
Cited by: Native libraries, System calls
- java.c(opens in a new tab)
The java launcher: parses options, loads libjvm, calls JNI_CreateJavaVM, invokes main.
OpenJDK source · src/java.base/share/native/libjli/java.c · JDK 25 GA (tag jdk-25-ga)
Cited by: java launcher
- systemDictionary.cpp(opens in a new tab)
HotSpot's registry of loaded classes per class loader.
OpenJDK source · src/hotspot/share/classfile/systemDictionary.cpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Class loader subsystem
- classFileParser.cpp(opens in a new tab)
Parses class file bytes into HotSpot metadata.
OpenJDK source · src/hotspot/share/classfile/classFileParser.cpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Loading
- verifier.cpp(opens in a new tab)
Bytecode verification (type-checking verifier).
OpenJDK source · src/hotspot/share/classfile/verifier.cpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Verification
- linkResolver.cpp(opens in a new tab)
Resolution of field and method references.
OpenJDK source · src/hotspot/share/interpreter/linkResolver.cpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Resolution
- classLoaderData.hpp(opens in a new tab)
Per-loader metadata ownership; unit of class unloading.
OpenJDK source · src/hotspot/share/classfile/classLoaderData.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Unloading
- instanceKlass.hpp(opens in a new tab)
HotSpot's in-memory representation of a Java class.
OpenJDK source · src/hotspot/share/oops/instanceKlass.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Loading, Method area
- constantPool.hpp(opens in a new tab)
Run-time constant pool representation.
OpenJDK source · src/hotspot/share/oops/constantPool.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Run-time constant pool
- cpCache.hpp(opens in a new tab)
Resolved field, method and invokedynamic entries.
OpenJDK source · src/hotspot/share/oops/cpCache.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Resolution, Run-time constant pool
- method.hpp(opens in a new tab)
Per-method metadata including entry points and counters.
OpenJDK source · src/hotspot/share/oops/method.hpp · JDK 25 GA (tag jdk-25-ga)
- markWord.hpp(opens in a new tab)
Object header (mark word) bit layout, with and without compact headers.
OpenJDK source · src/hotspot/share/oops/markWord.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Heap, Survivor space, Compaction and evacuation
- metaspace.hpp(opens in a new tab)
Metaspace: native memory for class metadata.
OpenJDK source · src/hotspot/share/memory/metaspace.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Method area
- threadLocalAllocBuffer.hpp(opens in a new tab)
Thread-local allocation buffers.
OpenJDK source · src/hotspot/share/gc/shared/threadLocalAllocBuffer.hpp · JDK 25 GA (tag jdk-25-ga)
- javaThread.hpp(opens in a new tab)
HotSpot's representation of a Java thread.
OpenJDK source · src/hotspot/share/runtime/javaThread.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Java thread, Native threads and scheduler
- stackOverflow.hpp(opens in a new tab)
Stack guard zones: reserved, yellow, red and shadow zones.
OpenJDK source · src/hotspot/share/runtime/stackOverflow.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: JVM stack
- frame_x86.hpp(opens in a new tab)
Interpreter frame layout on x86: method, mdp, cache, locals, bcp, sender sp.
OpenJDK source · src/hotspot/cpu/x86/frame_x86.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: PC register, Stack frame, Frame data
- interp_masm_x86.hpp(opens in a new tab)
x86 interpreter macro assembler: the bytecode pointer lives in r13.
OpenJDK source · src/hotspot/cpu/x86/interp_masm_x86.hpp · JDK 25 GA (tag jdk-25-ga)
- templateInterpreter.hpp(opens in a new tab)
HotSpot's template interpreter, generated at VM startup.
OpenJDK source · src/hotspot/share/interpreter/templateInterpreter.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Interpreter
- templateTable.hpp(opens in a new tab)
The per-bytecode machine-code templates.
OpenJDK source · src/hotspot/share/interpreter/templateTable.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Interpreter
- compilationPolicy.hpp(opens in a new tab)
Tiered compilation levels 0–4 and the thresholds that move methods between them.
OpenJDK source · src/hotspot/share/compiler/compilationPolicy.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Execution engine, Runtime profiling, JIT compiler, Compilation, C1 compiler
- compileBroker.hpp(opens in a new tab)
Compile queues and compiler threads.
OpenJDK source · src/hotspot/share/compiler/compileBroker.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: JIT compiler, Compilation
- methodData.hpp(opens in a new tab)
MethodData (MDO): per-method profiling information.
OpenJDK source · src/hotspot/share/oops/methodData.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Runtime profiling
- c1_Compilation.hpp(opens in a new tab)
The C1 (client) compiler.
OpenJDK source · src/hotspot/share/c1/c1_Compilation.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: C1 compiler
- compile.hpp(opens in a new tab)
The C2 (server, "opto") compiler.
OpenJDK source · src/hotspot/share/opto/compile.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Optimization, C2 compiler
- escape.hpp(opens in a new tab)
C2 escape analysis.
OpenJDK source · src/hotspot/share/opto/escape.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Optimization, C2 compiler
- codeCache.hpp(opens in a new tab)
Code cache and its code heaps (segments).
OpenJDK source · src/hotspot/share/code/codeCache.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Code cache, CPU
- nmethod.hpp(opens in a new tab)
Compiled Java methods (nmethods) and their states.
OpenJDK source · src/hotspot/share/code/nmethod.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Compilation, Code cache, Deoptimization
- deoptimization.hpp(opens in a new tab)
Deoptimization and the reasons uncommon traps record.
OpenJDK source · src/hotspot/share/runtime/deoptimization.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Optimization, Deoptimization
- safepoint.hpp(opens in a new tab)
Safepoints: bringing Java threads to a stop for VM operations.
OpenJDK source · src/hotspot/share/runtime/safepoint.hpp · JDK 25 GA (tag jdk-25-ga)
- gcConfig.cpp(opens in a new tab)
How the default garbage collector is selected.
OpenJDK source · src/hotspot/share/gc/shared/gcConfig.cpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Garbage collector, HotSpot collectors
- os.cpp(opens in a new tab)
Includes is_server_class_machine(), used for GC ergonomics.
OpenJDK source · src/hotspot/share/runtime/os.cpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Garbage collector, Serial GC
- oopStorage.hpp(opens in a new tab)
Storage for off-heap references such as JNI global handles.
OpenJDK source · src/hotspot/share/gc/shared/oopStorage.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: GC roots
- g1CollectedHeap.hpp(opens in a new tab)
The G1 collector's heap.
OpenJDK source · src/hotspot/share/gc/g1/g1CollectedHeap.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Young generation, Old generation, Marking, G1 (Garbage-First)
- zCollectedHeap.hpp(opens in a new tab)
The Z garbage collector's heap.
OpenJDK source · src/hotspot/share/gc/z/zCollectedHeap.hpp · JDK 25 GA (tag jdk-25-ga)
- shenandoahHeap.hpp(opens in a new tab)
The Shenandoah collector's heap.
OpenJDK source · src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Shenandoah
- parallelScavengeHeap.hpp(opens in a new tab)
The Parallel collector's heap.
OpenJDK source · src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Parallel GC
- serialHeap.hpp(opens in a new tab)
The Serial collector's heap.
OpenJDK source · src/hotspot/share/gc/serial/serialHeap.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Serial GC
- epsilonHeap.hpp(opens in a new tab)
The Epsilon (no-op) collector's heap.
OpenJDK source · src/hotspot/share/gc/epsilon/epsilonHeap.hpp · JDK 25 GA (tag jdk-25-ga)
Cited by: Epsilon GC
- jni.cpp(opens in a new tab)
HotSpot's implementation of the JNI function table.
OpenJDK source · src/hotspot/share/prims/jni.cpp · JDK 25 GA (tag jdk-25-ga)
Cited by: JNI
JDK Enhancement Proposals (29)
Design documents for features, with the release that delivered them.
- JEP 122: Remove the Permanent Generation(opens in a new tab)
Class metadata moved from PermGen (Java heap) to Metaspace (native memory).
OpenJDK · JDK 8
Cited by: Method area
- JEP 158: Unified JVM Logging(opens in a new tab)
The -Xlog framework used for class, GC and other logs.
OpenJDK · JDK 9
Cited by: Eden
- JEP 197: Segmented Code Cache(opens in a new tab)
Code cache split into non-method, profiled and non-profiled segments.
OpenJDK · JDK 9
Cited by: Code cache
- JEP 220: Modular Run-Time Images(opens in a new tab)
The runtime image layout and the lib/modules jimage file.
OpenJDK · JDK 9
Cited by: Bootstrap class loader
- JEP 248: Make G1 the Default Garbage Collector(opens in a new tab)
G1 became the default collector on server-class machines.
OpenJDK · JDK 9
Cited by: G1 (Garbage-First)
- JEP 261: Module System(opens in a new tab)
Platform class loader, module-aware delegation, and the module path.
OpenJDK · JDK 9
Cited by: Parent delegation, Platform class loader
- JEP 318: Epsilon: A No-Op Garbage Collector(opens in a new tab)
A collector that allocates but never reclaims memory.
OpenJDK · JDK 11
Cited by: Epsilon GC
- JEP 330: Launch Single-File Source-Code Programs(opens in a new tab)
java Main.java compiles in memory and runs the result.
OpenJDK · JDK 11
Cited by: Build time
- JEP 341: Default CDS Archives(opens in a new tab)
A class data sharing archive is shipped and used by default.
OpenJDK · JDK 12
Cited by: Bootstrap class loader
- JEP 363: Remove the Concurrent Mark Sweep (CMS) Garbage Collector(opens in a new tab)
The CMS mark-sweep collector was removed.
OpenJDK · JDK 14
Cited by: Sweeping
- JEP 371: Hidden Classes(opens in a new tab)
Classes that cannot be referenced by name, used by lambdas and frameworks.
OpenJDK · JDK 15
Cited by: Custom class loaders
- JEP 377: ZGC: A Scalable Low-Latency Garbage Collector (Production)(opens in a new tab)
ZGC became a product feature.
OpenJDK · JDK 15
Cited by: ZGC
- JEP 379: Shenandoah: A Low-Pause-Time Garbage Collector (Production)(opens in a new tab)
Shenandoah became a product feature.
OpenJDK · JDK 15
Cited by: Shenandoah
- JEP 387: Elastic Metaspace(opens in a new tab)
Metaspace allocator rewritten to return memory to the OS more promptly.
OpenJDK · JDK 16
Cited by: Method area
- JEP 410: Remove the Experimental AOT and JIT Compiler(opens in a new tab)
Graal-based compilers were removed from OpenJDK builds.
OpenJDK · JDK 17
Cited by: JIT compiler
- JEP 439: Generational ZGC(opens in a new tab)
ZGC gained separate young and old generations.
OpenJDK · JDK 21
Cited by: Young generation, ZGC
- JEP 444: Virtual Threads(opens in a new tab)
Lightweight threads scheduled by the JDK on carrier platform threads.
OpenJDK · JDK 21
Cited by: Java thread, Native threads and scheduler
- JEP 450: Compact Object Headers (Experimental)(opens in a new tab)
8-byte object headers on 64-bit platforms (experimental).
OpenJDK · JDK 24
- JEP 454: Foreign Function & Memory API(opens in a new tab)
A supported alternative to JNI for calling native code.
OpenJDK · JDK 22
Cited by: Native interface
- JEP 458: Launch Multi-File Source-Code Programs(opens in a new tab)
Extends source-file mode to programs made of several source files; they are still compiled in memory before running.
OpenJDK · JDK 22
- JEP 472: Prepare to Restrict the Use of JNI(opens in a new tab)
Warnings when JNI is used without --enable-native-access.
OpenJDK · JDK 24
Cited by: Native libraries, Native interface
- JEP 474: ZGC: Generational Mode by Default(opens in a new tab)
Generational mode became the default for ZGC.
OpenJDK · JDK 23
Cited by: ZGC
- JEP 483: Ahead-of-Time Class Loading & Linking(opens in a new tab)
Classes can be loaded and linked ahead of time into an AOT cache.
OpenJDK · JDK 24
Cited by: Linking
- JEP 490: ZGC: Remove the Non-Generational Mode(opens in a new tab)
ZGC is generational only.
OpenJDK · JDK 24
Cited by: Young generation, ZGC
- JEP 512: Compact Source Files and Instance Main Methods(opens in a new tab)
Instance main methods and compact source files.
OpenJDK · JDK 25
Cited by: java launcher
- JEP 514: Ahead-of-Time Command-Line Ergonomics(opens in a new tab)
Simpler creation of AOT caches.
OpenJDK · JDK 25
- JEP 515: Ahead-of-Time Method Profiling(opens in a new tab)
Method profiles from a training run are stored in the AOT cache.
OpenJDK · JDK 25
Cited by: Runtime profiling
- JEP 519: Compact Object Headers(opens in a new tab)
Compact object headers became a product feature (off by default).
OpenJDK · JDK 25
Cited by: Heap
- JEP 521: Generational Shenandoah(opens in a new tab)
Shenandoah's generational mode became a product feature.
OpenJDK · JDK 25
Cited by: Young generation, Shenandoah
Java SE API documentation (4)
The library contracts used in examples.
- java.lang.ClassLoader(opens in a new tab)
Built-in loaders, the delegation model, and getPlatformClassLoader / getSystemClassLoader.
Oracle · Java SE 25 API · Java SE 25
Cited by: Parent delegation, Platform class loader, Application class loader, Custom class loaders
- System.loadLibrary(String)(opens in a new tab)
Loads a native library; the name is mapped to a platform-specific file name.
Oracle · Java SE 25 API · Java SE 25
Cited by: Native libraries
- java.lang.ref package(opens in a new tab)
Strong, soft, weak and phantom reachability.
Oracle · Java SE 25 API · Java SE 25
- java.lang.foreign package(opens in a new tab)
Foreign Function & Memory API: calling native code and accessing off-heap memory.
Oracle · Java SE 25 API · Java SE 25
Tool reference (3)
The java, javac and javap commands used to produce our verified examples.
- The java command(opens in a new tab)
Launcher syntax, -Xss, -Xmx, -Xlog and the HotSpot -XX options.
Oracle · JDK 25 tool reference · JDK 25
Cited by: Java process, java launcher, Application class loader, JVM stack, Operating system and hardware, Virtual memory
- The javac command(opens in a new tab)
Compiles Java source files into class files.
Oracle · JDK 25 tool reference · JDK 25
Cited by: Build time, Source file, javac, JNI
- The javap command(opens in a new tab)
Disassembles class files: constant pool, descriptors and bytecode.
Oracle · JDK 25 tool reference · JDK 25
Cited by: javac, Class file
Guides (3)
Official guides for tuning and HotSpot features.
- HotSpot Virtual Machine Garbage Collection Tuning Guide(opens in a new tab)
Generations, ergonomics, and the G1, Parallel, Serial, Z and other collectors.
Oracle · JDK 25
Cited by: Heap, Young generation, Eden, Survivor space, Old generation, Garbage collector, GC roots, Marking, Sweeping, Compaction and evacuation, HotSpot collectors, G1 (Garbage-First), Parallel GC, Serial GC
- Java Virtual Machine Guide(opens in a new tab)
HotSpot features including class data sharing, compilation and signal handling.
Oracle · JDK 25
Cited by: Java process, Java Virtual Machine, Operating system and hardware, Virtual memory
- HotSpot Runtime Overview(opens in a new tab)
Background on HotSpot's runtime: class loading, interpreter, threads and synchronization. Some details predate JDK 25.
OpenJDK HotSpot group · Background (older JDKs)