This document provides an overview of Java 8 lambda expressions. It begins with an introduction and background on anonymous classes in previous Java versions. The main topics covered include lambda syntax, lambda expressions vs closures, capturing variables in lambda expressions, type inference, and functional interfaces. It also discusses stream operations like filter, map, flatMap, and peek. Finally, it covers parallelism and how streams can leverage multiple cores to improve performance.