Java 8 Features
Lambda Expressions
A lambda expression is a concise way to represent an anonymous function.
It consists of a parameter list, an arrow (->), and a body.
Example:
Functional Interfaces
A functional interface is an interface that has exactly one abstract method.
They can be used as the target type for lambda expressions and method references.
Java 8 provides several built-in functional interfaces in the
java.util.function
package, such asPredicate
,Function
, andSupplier
.Example:
Method References
A method reference is a shorthand notation for a lambda expression that calls a method.
There are four types of method references:
Reference to a static method:
ContainingClass::staticMethodName
Reference to an instance method of a particular object:
object::instanceMethodName
Reference to an instance method of an arbitrary object of a particular type:
ContainingType::methodName
Reference to a constructor:
ClassName::new
Example:
Streams
A stream is a sequence of elements that can be processed in parallel or sequentially.
They can be created from a collection, an array, or by using the
Stream.of
method.Stream operations can be either intermediate or terminal. Intermediate operations return a new stream and allow for chaining of operations, while terminal operations produce a result or a side-effect.
Example:
Optional
An
Optional
is a container object that may or may not contain a non-null value.It can be used as a return type or as a field of a class.
It provides methods for checking if a value is present and for retrieving the value if it is.
Example:
Date/Time API
The new Date/Time API provides a better way to represent, manipulate, and format dates and times.
The key classes are
LocalDate
,LocalTime
,LocalDateTime
, andZonedDateTime
.It provides methods for parsing and formatting dates and times.
Example:
Default and Static Methods in Interfaces
Java 8 introduced default and static methods in interfaces.
Default methods provide a default implementation that can be overridden by implementing classes.
Static methods can be used in interfaces to provide utility methods.
Example:
Concurrency Enhancements
Java 8 introduced several enhancements to the concurrency API.
The
CompletableFuture
class provides a way to represent and manipulate asynchronous computations.The
ConcurrentHashMap
class provides a thread-safe way to store key-value pairs.The
Atomic
classes provide a way to perform atomic operations on primitive data types.The
Parallel Streams
feature enables parallel processing of streams to improve performance.Example:
Last updated
Was this helpful?