Java Functional Programming – Detailed Course Outline
Copyright © 2014 - 2024, Anderson Software Group, Inc.
Section 1 - Lambda Expressions
- Interface Static Methods
- Default Methods
- Functional Interfaces
- Lambda Syntax
- Using Lambdas
- Function Descriptors
- Method References
- Choosing Functional Interfaces
- Constructor References
- Closures
- Lambda Compositions
Section 2 - Streams API
- What are Streams?
- Stream Advantages
- Stream Operations
- Streams vs. Collections
- Filtering and Mapping
- Finding and Matching
- Reductions
- Numeric Streams
- Infinite Streams
- Building Streams
- Collectors
- Grouping and Partitioning
- Parallel Streams
Section 3 - Refactoring and Testing
- Refactoring to Lambdas
- Refactoring to Method References
- Refactoring to Streams
- Refactoring Code Patterns
- Unit Testing Lambdas
- Visible Lambdas
- Lambda Behaviors
- Lambda Stack Traces
- Stream Debugging
Section 4 - Concurrency Enhancements
- Parallel Array Methods
- Thread Locals
- Atomics and Lambdas
- Concurrent HashMaps
- Completable Futures
- Pipelining
- Applying Futures
- Composing Futures
- Combining Futures
- Reactive Completions
Section 5 - Functional Programming
- Functional Style Java
- Shared Mutable Data
- Imperative vs. Declarative
- Guidelines
- Referential Transparency
- Replacing Iteration
- Pure Functions
- Currying
- Combinators
Appendix - Java 8 APIs
- Date and Time APIs
- Optional Class