Java 8 introduces functional interfaces having single abstract method, and lambda expressions can easily implement functional interfaces by implementing their abstract method.
"forEach" method in Java 8 allow Collection classes to iterate items. The method takes single parameter i.e., functional interface, so lambda expressions can be passed as arguments.
Optional class handles NullPointerExceptions in Java, and allows to pass other code/values to execute, thereby reducing no. of null checks required to avoid a NullPointerException.
Java 8 allows you to add non-abstract methods to interfaces. You can create interfaces with method implementation using Default and Static keywords.
Java 8 introduces a new Streams API for bulk data operations on elements/items of Java collections, and enables you to process components of Java collections in parallel.
Click the link below to Discover more Java 8 features with Examples.