Since Java 8 was introduced with its support for Lambda, Optional and Functional Interfaces, Java developer got their hands on an amazing ground of Functional Programming. While it has been widely supported in other OOP languages, only starting from JDK8, Java community got a new way to develop their code.

Starting Java 8, the main focus of many developers was on Functional Programming in Java including Streams, Optional, and Functional Interfaces. However, there were more amazing features introduced along the way which has changed Java programming.