Top Java 8 Interview Questions and Answers
Java 8 introduced a powerful set of features that changed the way we write Java. Below is a curated list of most frequently asked Java 8 interview questions with hands-on code snippets to help you prepare better.
1️⃣ What are the key features introduced in Java 8?
- Lambda Expressions
- Functional Interfaces
- Stream API
- Optional Class
- Default and Static methods in interfaces
- New Date and Time API
- Method References
2️⃣ What is a Lambda Expression in Java?
A Lambda Expression is an anonymous function that helps implement methods of functional interfaces in a cleaner way.
List<String> names = Arrays.asList("Tom", "Jerry", "Spike");
names.forEach(name -> System.out.println(name));
3️⃣ What is a Functional Interface?
A Functional Interface has exactly one abstract method and can have any number of default/static methods. Example: Runnable
, Comparator
, Function
, Predicate
.
@FunctionalInterface
interface MyFunctionalInterface {
void execute();
}
4️⃣ What is the Stream API and how is it used?
Stream API is used to process collections of objects in a functional style (map, filter, reduce).
List<String> names = Arrays.asList("apple", "banana", "cherry");
List<String> result = names.stream()
.filter(s -> s.startsWith("b"))
.collect(Collectors.toList());
5️⃣ What is the difference between Stream and Collection?
- Collection is an in-memory data structure.
- Stream is for processing data using a pipeline of operations.
- Streams don’t store data—they operate on source data.
6️⃣ What is the Optional class?
Optional
is a container object which may or may not contain a non-null value, used to avoid NullPointerException
.
Optional<String> optional = Optional.ofNullable("Hello");
optional.ifPresent(System.out::println);
7️⃣ What is the difference between map() and flatMap()?
- map(): transforms elements.
- flatMap(): flattens nested structures.
List<List<String>> data = Arrays.asList(Arrays.asList("a", "b"), Arrays.asList("c"));
List<String> flat = data.stream().flatMap(List::stream).collect(Collectors.toList());
8️⃣ How do you use the new Date/Time API?
Java 8 introduced java.time
package with immutable and thread-safe classes.
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.of(date, time);
9️⃣ What are Method References?
Method references are a shorthand notation for lambda expressions that call a method.
List<String> names = Arrays.asList("A", "B", "C");
names.forEach(System.out::println);
๐ What are Default and Static methods in interfaces?
- Default methods: Provide method implementations in interfaces.
- Static methods: Utility methods in interfaces.
interface MyInterface {
default void show() {
System.out.println("Default method");
}
static void utility() {
System.out.println("Static method");
}
}
๐ Final Thoughts
Java 8 brought functional programming to Java. Mastering its features like Lambda, Streams, Optional, and new Date APIs can significantly improve both code readability and performance, and help crack technical interviews with ease.
๐ Related Posts
๐ Java Streams API
Master functional programming in Java using map, filter, reduce, and collectors.
๐งช Java Coding Round Qs
Practice lambda, optional, and stream-based coding problems for interviews.
๐ฏ Top 25 Java Interview Qs
Boost your core Java fundamentals with frequently asked questions and answers.
๐งต final vs finally vs finalize()
Understand differences in Java keywords often asked in interviews.