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 …
508 viewsBasic Java Concepts
The Java programming language and Java virtual machine (also known as Java runtime environment) provide the tools to write operating system …
5,286 viewsBytecode
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: …
187 viewsClass 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, …
165 viewsCompact 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 …
3,871 viewsCPU 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, …
5,074 viewsCRaC (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 …
203 viewsDisco 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 …
523 viewsEpsilon 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 …
173 viewsForeign 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 …
326 viewsGarbage 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 …
165 viewsGC 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 …
285 viewsGraalVM 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 …
555 viewsHeap 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, …
182 viewsJakarta EE
Jakarta EE is the open-source, community-driven successor to Java EE (Java Platform, Enterprise Edition). It defines a set of specifications for …
180 viewsJava Champion
A Java Champion is a recognised leader, educator, or innovator in the Java community — someone who has demonstrated a sustained, meaningful …
4,216 viewsJava 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, …
359 viewsJava 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 …
189 viewsJava 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 …
346 viewsJDK 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 …
275 viewsJDK 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 …
480 viewsJEP (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 …
380 viewsJFR (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 …
168 viewsJIT 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 …
170 viewsjtreg 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 …
4,805 viewsLatency
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 …
4,383 viewsLTS 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 …
196 viewsOpenJDK
OpenJDK is the open-source reference implementation of the Java Platform, Standard Edition (Java SE) specification. It is the upstream project from …
2,505 viewsOpenJDK 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.) …
3,708 viewsOpenJDK Projects
OpenJDK is organised into named Projects: focused research and development efforts that explore or implement significant improvements to the Java …
310 viewsOpenJDK with Visual C++
Historical context: This article describes the Visual C++ considerations that applied during the Java 8 / early Java 11 era (2018–2021). It is …
4,758 viewsPattern Matching
Pattern matching is a set of language features that allow you to test the structure or type of a value and extract components from it in a single, …
146 viewsPreview and Incubator Features
Java ships new language features and APIs in two provisional states before they are finalised: Preview features (for language changes and JVM …
246 viewsProject Amber
Project Amber is the OpenJDK project behind most of what makes modern Java look different from Java 8: records, sealed classes, pattern matching, text …
36 viewsProject Babylon
Project Babylon extends Java's reflection to reach inside method bodies, so a library can read and transform the code of a lambda. Its driving use …
31 viewsProject Leyden
Project Leyden is the OpenJDK initiative focused on improving the startup time, warmup time, and footprint of Java programs by capturing and reusing …
301 viewsProject Lilliput
Project Lilliput shrinks the Java object header. Compact object headers cut it from 128 to 64 bits, which typically saves a few percent of heap on …
27 viewsProject Loom
Project Loom is the OpenJDK project that made concurrency cheap again: virtual threads, structured concurrency and scoped values, so a server can …
32 viewsProject Panama
Project Panama connects Java to code and data outside the JVM. It delivered the Foreign Function & Memory API, the jextract tool that generates …
30 viewsRecords
Records, introduced as a preview in Java 14 and finalised in Java 16, are a concise way to declare classes whose primary purpose is to hold immutable …
156 viewsScoped Values
Scoped Values, finalised in Java 24 (JEP 487), provide a mechanism to share immutable data within and across threads in a structured, predictable way …
145 viewsSealed Classes
Sealed classes, introduced as a preview in Java 15 and finalised in Java 17, let you explicitly control which classes or interfaces are permitted to …
141 viewsSecurity and Vulnerability Management
Within OpenJDK, the OpenJDK Vulnerability Group receives and discusses reports about security vulnerabilities in OpenJDK. It implements and tests …
3,885 viewsStop-the-World Pause
A stop-the-world (STW) pause is a period during garbage collection when all application threads are suspended so the GC can safely examine and modify …
161 viewsStructured Concurrency
Structured Concurrency, finalised in Java 24 (JEP 499), is a programming model that treats concurrent tasks executing in parallel as a single unit of …
136 viewsSwitch Expressions
Switch expressions, finalised in Java 14 (JEP 361), extend the traditional switch statement to work as an expression — producing a value — and …
154 viewsTechnology Compatibility Kit
Technology Compatibility Kit is the official Java SE test suite used to test compatibility and performance of the JRE/JDK against Java SE …
7,015 viewsText Blocks
Text blocks, finalised in Java 15 (JEP 378), are a multi-line string literal that avoids the need for most escape sequences and manual concatenation …
145 viewsThe Heap, Stack, and Metaspace
The JVM divides memory into several distinct regions, each serving a different purpose. The Heap is where object instances live. When you call new, …
157 viewsThread Dump
A thread dump is a snapshot of the state of all threads in a running Java process at a specific point in time, written as plain text. It captures each …
5,377 viewsValue Objects (Project Valhalla)
Value objects are a new kind of Java class being developed under Project Valhalla — available in preview in recent Java releases — that behave like …
774 viewsVirtual Threads
Virtual threads, introduced as a preview in Java 19–20 and finalised in Java 21 (JEP 444), are lightweight threads managed by the JVM rather than the …
193 views