This intermediate course path builds on your Java experience to help you write modular, reusable, and maintainable programs using functional techniques. You will revisit functions, method overloading, polymorphism, and recursion before applying lambda expressions and functional interfaces.
You will use the Java Stream API to process collections through intermediate and terminal operations. You will also explore currying, partial application, function composition, higher-order functions, generics, and functional object patterns.
The path concludes with techniques for lazy evaluation, asynchronous programming, dynamic type handling, and robust error handling in functional Java applications.