Java 8 introduced a lot of new features that made the language more powerful and easier to use. This tutorial will cover some of the most important features of Java 8.
1. Lambda Expressions
Lambda expressions provide a concise way to represent an instance of an anonymous class. They are often used with functional interfaces, which are interfaces with a single abstract method.
List<String> list = Arrays.asList("a1", "a2", "b1", "c2", "c1");
list.sort((String s1, String s2) -> s1.compareTo(s2));
2. Stream API
The Stream API provides a high-level abstraction for processing collections of objects. It allows you to perform operations on collections in a declarative way.
List<String> list = Arrays.asList("a1", "a2", "b1", "c2", "c1");
list.stream()
.filter(s -> s.startsWith("c"))
.forEach(System.out::println);
3. Date and Time API
Java 8 introduced a new Date and Time API that provides a more intuitive and flexible way to work with dates and times.
LocalDate date = LocalDate.of(2014, Month.DECEMBER, 31);
4. Optional Class
The Optional class is used to represent the absence of a value. It helps to avoid the NullPointerException
that is common in Java code.
Optional<String> name = Optional.ofNullable(null);
name.orElse("John Doe");
5. New Built-in Methods
Java 8 added many new built-in methods to the collections framework, such as map
, filter
, and reduce
.
List<Integer> numbers = Arrays.asList(1, 2, 3, 4);
int sum = numbers.stream().reduce(0, Integer::sum);
For more information on Java 8 features, you can read our detailed Java 8 Features Guide.