This document provides an introduction to functional programming concepts in Java 8 including lambdas, streams, and examples of how to apply functional programming techniques. It outlines key functional programming concepts like declarative programming and composing small functions without side effects. It also covers Java 8 features like lambda expressions, functional interfaces, and the Stream API for filtering, mapping, and reducing collections in a declarative way. Examples are provided for sorting a list, finding word lengths, summing numbers, and filtering/mapping over collections in a functional style.