Java 8 is one of the most significant releases in the history of the Java programming language. Released on March 18, 2014, by Oracle, It introduced revolutionary features that transformed the way Java is used, particularly in conjunction with functional programming.
- Support for functional programming with Lambda expressions and functional interfaces.
- Introduction of the Stream API for efficient data processing.
- A new Date and Time API for better handling of time and date operations.
- Default and static methods in interfaces for greater flexibility.
1. Lambda Expressions
A Lambda Expression is used to provide the implementation of a functional interface. It enables you to write cleaner and shorter code.
- Introduction
- Lambda Expressions Parameters
- Java Lambda Expression with Collections
- Lambda Expression Variable Capturing
- Create a Thread using Lambda Expressions
- Serialization of Lambda Expression
- Block Lambda Expressions
2. Functional Interfaces
An interface that contains only one abstract method is known as a functional interface; however, there is no restriction on the number of default and static methods that can be included within a functional interface.
- Introduction
- Consumer Interface
- BiConsumer Interface
- Predicate Interface
- Function Interface
- Supplier Interface
3. Method Reference
Method reference is a shorthand notation of a lambda expression to call a method.
4. Streams
Stream API is introduced in Java 8 and is used to process collections of objects with the functional style of coding using the lambda expression. So to understand what stream API is, you must have knowledge of both lambda and functional interfaces.
- Introduction
- Implement Filter Function using Reduce
- Stream API Filters
- Parallel vs Sequential Stream
- Array to Stream
- Print Elements of a Stream
- Convert an Iterable to Stream
- Convert an Iterator to Stream
- Convert Stream to Set
- Convert a Set to Stream
5. Comparable and Comparator
Comparable and Comparator are interfaces used to order objects. They are particularly useful in sorting operations and collections that require natural ordering. Here we will learn about Comparable and Comparator in depth.
- Comparable vs Comparator
- Comparator Interface
- Sort an Array of Triplet using Java Comparable and Comparator
- Sort LinkedList using Comparable
- Sort HashSet Elements using Comparable Interface
- Sort LinkedHashMap by Values using Comparable Interface
- Sort LinkedHashMap by Keys using Comparable Interface
6. Optional Class
- Introduction
- ofNullable() Method
- ifPresentOrElse() Method
- orElseGet() Method
- filter() Method
- hashCode() Method
- toString() Method
- equals() Method
- stream() Method
7. Date/Time API
This section gives you to handle the ever-changing world of dates and times within your Java programs. Explore working with calendars, timestamps and time manipulation – essential skills for building applications that deal with deadlines, scheduling or even historical data analysis.
- Introduction
- LocalDateTime Class
- MonthDay Class
- OffsetTime Class
- OffsetDateTime Class
- Clock Class
- ZonedDateTime Class
- ZoneOffset Class
- Year Class
- YearMonth Class
- Period Class
8. Other Java 8 Features
Java is a versatile and powerful programming language that encompasses a wide range of features and tools, enabling developers to build robust, high-performance applications. Let us learn some Java Miscellaneous topics are mentioned below:
8.1 Java 8 Interface and Collection Enhancements
8.2 Functional Interfaces – Unary Operator
- LongUnaryOperator Interface
- IntUnaryOperator Interface
- DoubleUnaryOperator Interface
- UnaryOperator Interface
8.3 Functional Interfaces – Consumers and Suppliers
- LongConsumer Interface
- ObjLongConsumer Interface
- ObjIntConsumer Interface
- ObjDoubleConsumer Interface
- DoubleConsumer
- IntSupplier Interface
- BooleanSupplier Interface
- LongSupplier Interface
- DoubleSupplier Interface
8.4 Functional Interfaces – Functions and BiFunctions
Curriculum
- 1 Section
- 1 Lesson
- 10 Weeks
- Java 8 Streams1
Instructor

