Skip to content

Commit f89afeb

Browse files
Glossary items
Part 1 - 24 Sep 2025 Signed-off-by: Sreekala Gopakumar [email protected]
1 parent 836fa6d commit f89afeb

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

docs/Glossary.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<!--
2+
* Copyright (c) 2017, 2025 IBM Corp. and others
3+
*
4+
* This program and the accompanying materials are made
5+
* available under the terms of the Eclipse Public License 2.0
6+
* which accompanies this distribution and is available at
7+
* https://www.eclipse.org/legal/epl-2.0/ or the Apache
8+
* License, Version 2.0 which accompanies this distribution and
9+
* is available at https://www.apache.org/licenses/LICENSE-2.0.
10+
*
11+
* This Source Code may also be made available under the
12+
* following Secondary Licenses when the conditions for such
13+
* availability set forth in the Eclipse Public License, v. 2.0
14+
* are satisfied: GNU General Public License, version 2 with
15+
* the GNU Classpath Exception [1] and GNU General Public
16+
* License, version 2 with the OpenJDK Assembly Exception [2].
17+
*
18+
* [1] https://www.gnu.org/software/classpath/license.html
19+
* [2] https://openjdk.org/legal/assembly-exception.html
20+
*
21+
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0 OR GPL-2.0-only WITH OpenJDK-assembly-exception-1.0
22+
-->
23+
24+
# Glossary Terms and Definitions
25+
26+
| Glossary Term | Definition |
27+
|---------------|------------|
28+
| **Allocator** | Manages pools of free memory and allocates storage in the Java heap for objects requested by applications, libraries, or the VM. |
29+
| **Arraylet** | A structure for storing large arrays in fragmented heaps, consisting of a spine and leaves. Helps avoid contiguous memory allocation. |
30+
| **Area-based Heap** | Divides the heap into nursery and tenure areas to optimize garbage collection based on object lifespan. |
31+
| **Compressed References** | A memory optimization technique that stores object references in 32-bit format on 64-bit systems to reduce memory footprint. |
32+
| **GC Policy** | A strategy used by the garbage collector to manage memory. Examples include `gencon`, `optavgpause`, `balanced`, etc. |
33+
| **Garbage Collector (GC)** | Reclaims memory by removing objects that are no longer referenced. Different GC policies determine its behavior. |
34+
| **Heap Configuration** | Defines the structure of the Java heap, which can be flat or divided into areas or regions. |
35+
| **Heap Expansion and Contraction** | The VM grows or shrinks the heap based on memory needs and GC activity, controlled by options like `-Xminf`, `-Xmaxf`, etc. |
36+
| **Heap Lock** | A synchronization mechanism to prevent concurrent threads from accessing the same memory area during allocation. |
37+
| **Heap Sizing** | Refers to setting initial and maximum heap sizes using options like `-Xms` and `-Xmx`, with finer tuning for specific areas. |
38+
| **LOA (Large Object Area)** | A heap subdivision for large object allocation. Its size is dynamically adjusted to avoid allocation failures. |
39+
| **OutOfMemoryError** | An exception thrown when the JVM cannot allocate memory due to insufficient heap space. |
40+
| **Region-based Heap** | Divides the heap into many equal-sized regions to manage object generations. Used by `balanced` and `metronome` GC policies. |
41+
| **Small Object Allocation** | The process of allocating memory for objects that are typically smaller than 64 KB in size in a designated part of the heap called the Small Object Area (SOA). |
42+
| **SOA (Small Object Area)** | A heap subdivision for small object allocation. Allocation failures here trigger garbage collection. |
43+
| **Thread Local Heap (TLH)** | A thread-specific memory cache that allows memory allocation without acquiring the heap lock, improving performance. |
44+
45+
46+
<!-- ==== END OF TOPIC ==== glossary.md ==== -->

mkdocs.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,4 +500,6 @@ nav:
500500
- "Java 21 API" : api-jdk21.md
501501
- "Java 25 API" : api-jdk25.md
502502

503+
- "Glossary" : glossary.md
504+
503505
- "Legal" : legal.md

0 commit comments

Comments
 (0)