Java 8 New Features Training in Eugene
We offer private customized training for groups of 3 or more attendees.
|
||
Course Description |
||
Java 8 introduces a number of revolutionary capabilities - many of them centered on lambda expressions and functional-style programming. These capabilities add powerful new programming techniques to the language, but also add complexity.
This concise course is focused on introducing the new capabilities and how to use them. It includes numerous code examples and programming labs that illustrate all of the new capabilities.
The course is hands on, and requires that students be comfortable with writing general Java code at an intermediate level, including the use of interfaces.
Course 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 Data/Time API
- Be familiar with other new capabilities
Course Length: 2 Days
Course Tuition: $690 (US) |
Prerequisites |
|
No programming experience necessary |
Course Outline |
1: What's new in Interfaces
Static Methods
Default Methods
Functional Interfaces
2: Introducing Lambda Expressions
Motivation for Lambdas
Lambda Expression Overview
Lambda Expressions and Functional Interfaces
Using Lambda Expressions
Working with Method References
3: The Stream API
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
4: Parallel Processing and Concurrency
li>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
5: Date/Time API
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
6: Other Capabilities
Compact Profiles
Using Optional Instead of null
Repeatable and Type Annotations
Nashorn JavaScript Engine
Minor New Features
|
Course Directory [training on all levels]
- .NET Classes
- Agile/Scrum Classes
- Ajax Classes
- Android and iPhone Programming Classes
- Blaze Advisor Classes
- C Programming Classes
- C# Programming Classes
- C++ Programming Classes
- Cisco Classes
- Cloud Classes
- CompTIA Classes
- Crystal Reports Classes
- Design Patterns Classes
- DevOps Classes
- Foundations of Web Design & Web Authoring Classes
- Git, Jira, Wicket, Gradle, Tableau Classes
- IBM Classes
- Java Programming Classes
- JBoss Administration Classes
- JUnit, TDD, CPTC, Web Penetration Classes
- Linux Unix Classes
- Machine Learning Classes
- Microsoft Classes
- Microsoft Development Classes
- Microsoft SQL Server Classes
- Microsoft Team Foundation Server Classes
- Microsoft Windows Server Classes
- Oracle, MySQL, Cassandra, Hadoop Database Classes
- Perl Programming Classes
- Python Programming Classes
- Ruby Programming Classes
- Security Classes
- SharePoint Classes
- SOA Classes
- Tcl, Awk, Bash, Shell Classes
- UML Classes
- VMWare Classes
- Web Development Classes
- Web Services Classes
- Weblogic Administration Classes
- XML Classes
Java Programming Uses & Stats
Difficulty
|
Popularity
|
Year Created 1995 |
Pros
Most Commonly Used:
Great Career Choice:
Android Apps Development:
It Can Run On Any Platform:
Great Supporting IDE's: |
Cons
Uses a Lot of Memory:
Difficulty in Learning:
Slow Start Up Times:
Verbose and Complex Code:
Commercial License Cost: |
Java Programming Job Market |
Average Salary
|
Job Count
|
Top Job Locations
New York City |
Complimentary Skills to have along with Java Programming
- If you are an experienced Java developer, learning a complimentary language to Java should come much more naturally. As an example JetBrains recently created the Kotlin programming language which is officially supported by Google for mobile development. Kotlin compiles to Java bytecode and runs on the JVM; it's purported to address many of Java's shortcomings... |