Java 8
Course Number: JAV-142
Duration: 2 days (13 hours)
Format: Live, hands-on
Java 8 Training Overview
Accelebrate’s Using Java 8’s New Features training class introduces students to Java 8’s capabilities, many of which are centered on lambda expressions and functional-style programming. Attendees learn to take advantage of this Java 8’s new powerful programming language techniques and major features.
Location and Pricing
Accelebrate offers instructor-led enterprise training for groups of 3 or more online or at your site. Most Accelebrate classes can be flexibly scheduled for your group, including delivery in half-day segments across a week or set of weeks. To receive a customized proposal and price quote for private corporate training on-site or online, please https://asreet-tech.com/contact/
Objectives
- Be familiar with the additions to Java interfaces
- Understand and use functional interfaces
- Understand lambda expressions and method references, and use them to pass behavior (methods)
- Learn about the pre-defined functional interfaces, and use them with lambda expressions
- Understand and use the Stream API
- Process collections using streams, including chaining operations and using collectors
- Understand and use parallel streams
- Understand and deal with the issues of parallel processing
- Learn and use the new Date/Time API
- Be familiar with other new capabilities
Prerequisites
All students should have solid Java SE 5, Java 6, or 7 programming experience.
Outline
- Static Methods
- Default Methods
- Functional Interfaces
- Motivation for Lambdas
- Lambda Expression Overview
- Lambda Expressions and Functional Interfaces
- Using Lambda Expressions
- Working with Method References
- Overview
- Shortcomings of Collections
- What are Streams?
- Chaining – Intermediate and Terminal Operations
- Understanding the Stream API
- Overview – java.util.stream types (Stream, Collector, …)
- Keys to Understanding the API
- Important Functional Interfaces: Predicate, Comparator, Function
- Stream Processing
- Using filter()
- Sorting / Comparator.comparing()
- Using map()
- Other operations: peek(), distinct(), limit(), skip()
- Result producing terminal operations – collect, min/max …
- void Terminal Operations – forEach()
- Existence (e.g. anyMatch) and Finder (e.g. findAny) Operations
- Collectors
- Roles and Capabilities
- Collectors.toList(), Collectors.toSet()
- Supplier and Collectors.toCollection()
- Partitioning and Grouping Collectors
- Overview
- Java 8 Parallel Processing using Streams
- Ground Rules / Requirements for Using Parallel Stream Processing
- Multithreading / Concurrency Issues
- Race Conditions, Data Synchronization, Locks
- Performance Issues and Considerations
- Overview and Limitations of Previous API
- The Date/Time API (JSR 310)
- Creating and Working with LocalData/LocalTime/LocalDateTime Instances
- Formatting Date/Time
- Localization / Time Zones
- Periods and Durations
- Performing Calculations on Data/Time types
Training Materials
All Java programming language students receive comprehensive courseware.
Software Requirements
- A recent version of Windows, macOS, or Linux with at least 8 GB
- JDK 8 or later
- The Java tool the students are likely to use after the class (Eclipse or IntelliJ IDEA are recommended)
- Other free software – please contact us if you have purchased this class