Java 8 introduced many new features including lambda expressions, default methods in interfaces, streams API and date/time API improvements. Lambda expressions allow passing code as data and functional interfaces help utilize lambda expressions. Default methods allow adding new methods to interfaces while maintaining backwards compatibility. The streams API enables functional-style operations on collections through intermediate and terminal operations. The new date/time API in Java 8 addresses shortcomings in previous date/time classes.