Skip to content
Module 1: Introduction to Java 8
- Overview of Java 8 features and improvements
- Java 8 vs. earlier versions
- Setting up Java 8 development environment
Module 2: Lambda Expressions
- Introduction to functional programming
- What are lambda expressions?
- Lambda syntax and examples
- Functional interfaces: Predicate, Consumer, Function, Supplier
- Method references and constructor references
Module 3: Streams and Collections
- Introduction to Streams
- Creating Streams: stream(), parallelStream()
- Intermediate and terminal operations
- Filter, map, flatMap, forEach, reduce
- Stream API vs. traditional loops
- Stream performance and parallel processing
Module 4: Default Methods and Interfaces
- Introduction to default methods
- Need for default methods
- Creating default methods in interfaces
- Overriding default methods
- Multiple inheritance problem and interfaces
Module 5: Optional Class
- Handling null values with Optional
- Creating and using Optional objects
- Common Optional methods: isPresent(), ifPresent(), orElse(), etc.
- Best practices for using Optional
Module 6: New Date and Time API
- Problems with the old Date and Calendar classes
- Introduction to java.time package
- LocalDate, LocalTime, LocalDateTime
- Periods and Durations
- Formatting and parsing dates
Module 7: Functional Interfaces and Method References
- Functional interfaces in Java 8
- java.util.function package
- Examples of functional interfaces: Predicate, Function, Consumer, Supplier
- Method references: static methods, instance methods, constructors
Module 8: Default and Static Methods in Interfaces
- Default methods: introduction and use cases
- Overriding default methods
- Static methods in interfaces
- Interface evolution and backward compatibility
Module 9: Java 8 and Collections
- forEach() method for Iterable
- Map enhancements: forEach(), computeIfAbsent(), computeIfPresent(), merge()
- List and Set enhancements
Module 10: Concurrency Enhancements
- Introduction to CompletableFuture
- Asynchronous programming with CompletableFuture
- Combining CompletableFutures: thenCombine(), thenCompose()
- Exception handling with CompletableFutures
Module 11: New JVM Features
- PermGen space vs. Metaspace
- String intern() changes
- JEPs (Java Enhancement Proposals) related to Java 8
Module 12: Summary and Best Practices
- Recap of Java 8 features
- Best practices for utilizing Java 8 features
- Upgrade considerations and compatibility issues
- Looking ahead: Future of Java development