Java Course Glossary
Java Course Glossary
A comprehensive guide to modern Java terminology, syntax, and concepts.
A
Annotation Interface
A specialized interface used to define annotations. Declared using the @interface keyword.
AQS (AbstractQueuedSynchronizer)
A framework for implementing blocking locks and related synchronizers (semaphores, events, etc.) that rely on first-in-first-out (FIFO) wait queues.
Architecture Testing
Testing to ensure code adheres to architectural rules (e.g., layers, naming). Architecture Testing
ArchUnit
A library for checking the architecture of Java code using any plain Java unit test framework. ArchUnit
Assertion
A statement that a predicate (Boolean-valued function) is true at that point in code execution. Assertion
Assumption
A condition that must be met for a test to be meaningful. If an assumption fails, the test is aborted (skipped), not failed. Assumption
C
CAS (Compare-And-Swap)
A CPU instruction used to achieve synchronization without locks. It updates a variable only if it has the expected value, enabling non-blocking algorithms. CAS
Collector
A utility class (java.util.stream.Collectors) that provides implementations for the Stream.collect operation, such as accumulating elements into a list, set, or map.
Collector
Compact Constructor
A special constructor in a Record that allows validation or normalization of parameters without repeating the parameter list or assignment logic. Compact Constructor
CompletableFuture
A class that implements Future and CompletionStage, enabling asynchronous, non-blocking programming pipelines.
CompletableFuture
Consumer
A functional interface (java.util.function.Consumer<T>) that accepts a single input argument and returns no result. Commonly used in forEach operations.
Consumer
D
Deadlock
A situation where two or more threads are blocked forever, each waiting for the other to release a resource.
Dynamic Test
A test generated at runtime by a factory method, allowing for flexible test scenarios. Dynamic Test
E
Effectively Final
A variable or parameter whose value is never changed after it is initialized. Local variables referenced from a lambda expression or anonymous inner class must be effectively final. Effectively Final
Extension Model
The mechanism in JUnit 5 (Jupiter) to extend the framework’s behavior (e.g., callbacks, parameter resolution). Extension Model
F
ForkJoinPool
An ExecutorService for running ForkJoinTasks. It employs a work-stealing algorithm and is the default thread pool used by parallel streams.
ForkJoinPool
Function
A functional interface (java.util.function.Function<T, R>) that accepts one argument and produces a result. Commonly used in map operations.
Function
Functional Interface
An interface with exactly one abstract method, which can be implemented using a Lambda Expression. Marked with @FunctionalInterface.
I
Immutable
An object whose state cannot be modified after it is created. Records are immutable by default.
Integration Test
A level of software testing where individual units are combined and tested as a group. Integration Test
Intermediate Operation
An operation on a stream (like filter, map) that returns a new stream. These operations are lazy and are not executed until a terminal operation is invoked.
Intermediate Operation
J
JUnit
A unit testing framework for the Java programming language. JUnit
L
Lambda Expression
A concise way to represent an instance of a functional interface. It provides a clear and compact syntax for writing anonymous methods. Lambda Expression
Livelock
A condition where threads are not blocked but are too busy responding to each other to make progress.
M
Method Reference
A shorthand syntax (::) for a lambda expression that executes just one existing method.
Method Reference
P
Parameterized Test
A test method that is executed multiple times with different arguments. Parameterized Test
Pattern Matching
A mechanism to check if an object has a specific structure and extract data from it in a single operation. Available for instanceof, switch, and Records.
Pattern Matching
Permitted Subclass
A class explicitly authorized to extend a Sealed Class using the permits clause.
Pipeline
A sequence of aggregate operations on a data source. A stream pipeline consists of a source, zero or more intermediate operations, and a terminal operation. Pipeline
Predicate
A functional interface (java.util.function.Predicate<T>) that accepts one argument and returns a boolean. Commonly used in filter operations.
Predicate
R
ReadWriteLock
A lock that maintains a pair of associated locks, one for read-only operations and one for writing. The read lock may be held simultaneously by multiple reader threads, so long as there are no writers.
Record
A concise class declaration for immutable data carriers. Automatically generates equals, hashCode, toString, and accessors.
Record
Record Pattern
A pattern that matches a record type and deconstructs it into its component values.
Reducer
An operation that combines a sequence of elements into a single result by repeated application of a combining operation (e.g., sum, max). Reducer
ReentrantLock
A mutual exclusion lock with the same basic behavior as the implicit monitor lock accessed using synchronized methods and statements, but with extended capabilities (like fairness and interruptibility).
S
Sealed Class
A class or interface that restricts which other classes or interfaces may extend or implement it. Defined using the sealed modifier.
Sealed Class
StampedLock
A capability-based lock with three modes for controlling read/write access. It provides an optimistic read mode that is very efficient for read-heavy workloads. StampedLock
Stream
A sequence of elements supporting sequential and parallel aggregate operations. Streams do not store data; they convey data from a source through a pipeline of computational operations. Stream
Supplier
A functional interface (java.util.function.Supplier<T>) that takes no arguments and returns a result.
Supplier
Switch Expression
A switch construct that evaluates to a value and can be assigned to a variable. Uses the yield keyword (or arrow syntax) to return values.
Switch Expression
T
Terminal Operation
An operation on a stream (like forEach, collect, reduce) that produces a result or a side-effect. Invoking a terminal operation traverses the stream pipeline and consumes the stream.
Terminal Operation
Testcontainers
A Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container. Testcontainers
Text Block
A multi-line string literal in Java, delimited by triple quotes """, that preserves formatting and eliminates the need for most escape sequences.
U
Unit Test
A type of software testing where individual units or components of a software are tested. Unit Test
V
Var
A reserved type name for local variable type inference. The compiler infers the type of the variable from the initializer.
Virtual Thread
A lightweight thread implementation provided by the JVM (Project Loom) that maps many virtual threads to a small number of carrier OS threads, enabling high-concurrency applications.
W
Work-Stealing
An algorithm used by ForkJoinPool where idle threads “steal” tasks from the deque of busy threads to ensure efficient CPU utilization.
Y
Yield
A context-sensitive keyword used in Switch Expressions to return a value from a case block (similar to return in a method).