Functional Interfaces in Java: Fundamentals and Examples