Java Terms Explained
A plain-language glossary of Java and OpenJDK terminology, from the friends of OpenJDK.
AOT Compilation (Ahead-of-Time)
Ahead-of-time (AOT) compilation converts Java source code or bytecode into native machine code before the application runs, rather than during …
Basic Java Concepts
The Java programming language and Java virtual machine (also known as Java runtime environment) provide the tools to write operating system …
Bytecode
When you compile a Java source file, the Java compiler (javac) does not produce native machine code for a specific CPU. Instead it produces bytecode: …
Class Loading
Before the JVM can execute any code it must load the corresponding .class file into memory. This process is handled by class loaders, which locate, …
Compact Profiles
Note: Compact Profiles are a Java 8 feature. Starting with Java 9, the same goal — creating a minimal, self-contained runtime — is achieved more …
CPU and PSU
From Java 9 onward, Oracle moved to a six-month release cadence, releasing a new JDK version every March and September. Security patches, bug fixes, …
CRaC (Coordinated Restore at Checkpoint)
CRaC is an OpenJDK project that solves one of the most common complaints about Java in cloud environments: slow startup. The JVM traditionally takes …
Disco API
The Disco API (short for Universal OpenJDK Discovery API) is a database and REST API that catalogues every available OpenJDK package from every major …
Epsilon GC
Epsilon GC is a no-op garbage collector: it allocates memory on request but never reclaims it. When the Java heap is exhausted, the JVM exits with an …
Foreign Function & Memory API
The Foreign Function & Memory (FFM) API, finalised in Java 22 (JEP 454), provides a safe, efficient, and pure-Java way to interact with native code …
Garbage Collection
Garbage Collection (GC) is the process by which the JVM automatically reclaims memory occupied by objects that are no longer reachable by the running …
GC Algorithms: G1, ZGC, and Shenandoah
The JDK ships with several garbage collectors, each designed for different goals. Choosing the right one depends on whether your application …
GraalVM and Native Image
GraalVM is a high-performance JDK distribution and runtime developed by Oracle. It extends the standard JDK with two key capabilities: the Graal JIT …
Heap Dump
A heap dump is a snapshot of all the objects in a Java process's heap memory at a specific point in time, written to a file. It captures every object, …
Jakarta EE
Jakarta EE is the open-source, community-driven successor to Java EE (Java Platform, Enterprise Edition). It defines a set of specifications for …
Java Champion
A Java Champion is a recognised leader, educator, or innovator in the Java community — someone who has demonstrated a sustained, meaningful …
Java Community Process (JCP)
The Java Community Process (JCP) is the formal mechanism through which the Java platform specifications are created and evolved. Established in 1998, …
Java Module System (JPMS)
The Java Platform Module System (JPMS), introduced in Java 9 as part of Project Jigsaw, brings a formal module concept to the Java platform. A module …
Java Native Interface (JNI)
The Java Native Interface (JNI) is the standard mechanism that allows Java code running in the JVM to call, and be called by, native code written in …
JDK Distributions
The OpenJDK project publishes source code, not binaries. To actually run Java, you need a distribution: a pre-built, tested binary of OpenJDK packaged …
JDK Mission Control (JMC)
JDK Mission Control is a suite of tools for profiling, monitoring, and diagnosing Java applications. It provides a GUI frontend for Java Flight …
JEP (JDK Enhancement Proposal)
A JDK Enhancement Proposal (JEP) is the formal document used to propose, track, and communicate a significant change to the Java platform. Every major …
JFR (Java Flight Recorder)
Java Flight Recorder (JFR) is a low-overhead profiling and event-collection framework built into the JDK. It records a continuous stream of events …
JIT Compilation (Just-in-Time)
Just-in-time (JIT) compilation is the process by which the JVM translates bytecode into native machine code while the application is running, rather …
jtreg Test Suites
jtreg is the test harness for regression and unit testing used by the JDK test framework. For many OpenJDK distributions, the jtreg tests are run in …
Latency
Latency is the time between the initiation of a procedure and the completion of the procedure; in other words, how long it takes for something to …
LTS and Non-LTS Releases
Since Java 9, the JDK has followed a strict six-month release cadence: a new version ships every March and September. Most of these are feature …
OpenJDK
OpenJDK is the open-source reference implementation of the Java Platform, Standard Edition (Java SE) specification. It is the upstream project from …
OpenJDK Coding Guidelines and Code Reviews
OpenJDK does not have a single exhaustive coding style guide. Sub-components come from diverse origins (HotSpot, the standard library, OpenJFX, etc.) …
OpenJDK Projects
OpenJDK is organised into named Projects: focused research and development efforts that explore or implement significant improvements to the Java …