Angelika Langer - Training & Consulting
HOME | COURSES | TALKS | ARTICLES | GENERICS | LAMBDAS | IOSTREAMS | ABOUT | CONTACT | Twitter | Lanyrd | Linkedin
Course Curriculum Angelika LangerCourse Curriculum Angelika Langer  
HOME

  GENERAL INFO
  SCHEDULE
  REGISTRATION
  
  JAVA
    EFFECTIVE JAVA
    CONCURRENCY
    PERFORMANCE
    LAMBDAS
    JAVA AFTER EIGHT
    MODULE SYSTEM
    GC TUNING
    MEMORY MODEL 
    JAVA INTRO

  C++
    RELIABLE C++
    EFFECTIVE STL
    TEMPLATES
    IOSTREAMS
    C++ INTRO   
 

GENERICS 
LAMBDAS 
IOSTREAMS 
ABOUT 
CONTACT 
Java After Eight - New Language Features since Java 8

Java After Eight - New Language Features since Java 8
COURSE DESCRIPTION
Major extensions to the language and the JDK have been added since release 8 of Java - most prominently "Lambdas & Streams" in Java 8 and the Module System in Java 9.

The new language features include lambda expressions and method references as well as default and static interface methods.  In this seminar attendants will enjoy in-depth coverage of the lambdas and streams, will practice their use in hand-on labs, and will gain an overview of the module system and further recent language extensions. 

Mastering lambdas is the prerequisite for successfully using streams.  Streams are an extension to the JDK collection framework.  They provide a functional API for sequential and parallel bulk operations on sequences of elements. The seminar provides an overview of the stream API from basics such as filter-map-reduce to advanced operations such as user-defined stream sources.  Attendants will practice the use of streams in numerous labs. 

The seminar gives an overview of the Date/Time API, which replaces old classes such a Date and Calendar. 

The most prominent addition to Java 9 is the module system.  It provides an encapsulation mechanism on top of packages.  Beginning with Java 9 the community is encouraged to modularize all application, libraries and frameworks.  The seminar discusses migration strategies, explains module descriptors, the difference between named, unnamed and automatic modules, issues with deep reflection, and new tools such as jdeps and jlink.

Minor extensions were added in the JDK releases since release 10 namely type inference for local variables, switch expressions, pattern matching for switch, text blocks, extensions of the instanceof operator, and new types such as records and sealed types.

Prerequisite Courses and Skills: Working knowledge of Java; in-depth experience with Java not required. 
Duration: 4 days
Exercises: Workshops and hands-on labs

This is a course for Java programmers who need an overview of new core features of since Java 8 and strive for a thorough understanding of the key features, namely lambdas and streams.
The course is designed to build on existing expertise as Java programmers and takes the attendants' skills one step further. Prerequisite for these seminars is at least 1 year of experience with Java or equivalent knowledge. 

 
COURSE CONTENT


 

Lambdas & Method References
  • Lambdas Expressions
  • Method/Constructor References
  • Functional Interfaces
  • Default & Static Interface Methods
  • Programming with Lambdas
Streams API
  • Streams & Collections
  • ForEach-Filter-Map-Reduce
  • Fluent Programming
  • Intermediate & Terminal Operations
  • Mappers & Collectors 
Stream Internals
  • Pipelining 
  • Stateless & Stateful Operations
  • Non-Interference Requirement
  • Ordering & Associativity
  • Sequential & Parallel Execution
  • Performance Model
Stream Extensions
  • User-Defined Stream Sources
Date / Time API
  • Continuous vs. Human Time
  • Local and Zones Date / Time
  • Parsing & Formatting
Module System
  • Module Descriptors
  • Named, Unnamed &  Automatic Modules
  • jdeps, jmod, jlink  
Java 10 - 17
  • Local Variable Type Inference
  • Switch Expressions
  • Extended instanceof
  • Text Blocks
  • Records
  • Sealed Types
  • Pattern Matching For Switch
PERFORMANCE OBJECTIVES
 
Keep your Java skills up-to-date
Learn how to use lambdas and streams effectively
Master the stream API and its performance model
Know how to avoid the pitfalls of parallel stream operations
Understand modern Java programming idioms 

BUSINESS OBJECTIVES
 
Equip your software professionals with industrial-strength Java skills 
Increase your Java software's performance and scalability
Get the most out of Java 8 and 9

AUTHOR & TRAINER

The course is designed by Klaus Kreft & Angelika Langer and backed by years of experience in teaching and more than a decade of practical experience in industrial software development both in C++ and Java.
Angelika Langer is a freelance trainer/consultant in the area of software development in C++ and Java, author of language reference material such as the Java Generics FAQs [ ], the Lambdas/Streams Tutorial & Reference  [ ], and countless articles on C++ and Java topics [ ]. 
Klaus Kreft is a senior consultant for more than 25 years and has served as the lead architect and performance expert on several successful industry projects. He has been working in Java since its advent in 1995. 
Both are recognized speakers at OO and Java conferences and author of numerous articles on C++ and Java topics in various computer magazines worldwide. Together they write a column for the German Java magazine JavaMagazin  [ ] and are authors of the  books "Standard C++ IOStreams and Locales" (2000) [ ] and "Java Core Programmierung" (2011) [ ], the Online FAQ on Java Generics [ ], and the Lambdas/Streams Tutorial & Reference  [ ].
 

FURTHER READING

To get an impression of some of the topics covered in this course check out these sample materials: 
 
Lambda & Streams Tutorial and Reference
In-Depth Coverage of all aspects of lambdas & streams
Lambdas in Java 8
Conference Presentation at JFokus 2012 (slides)
Lambdas in Java 8
Conference Presentation at JavaZone 2012 (video)
A Overview of Java 9
Conference Presentation at W-JAX 2016 (video)
 
 
 
TRAINING LOCATIONS

Open Enrollment
Public courses are conducted in collaboration with partner companies worldwide. Presentation language is English or German, depending on the location. For further information go to GENERAL INFO.
On-Site Training
Courses can be held at your company site. Duration and content will be tailored to your specific needs and prerequisites. Presentation language is English or German.  For further information go to GENERAL INFO.
For information regarding training locations and the current schedule of public courses go to SCHEDULE. For further information or enrollment send me EMAIL or use the REGISTRATION form.
Schedule
To check for availability, price and other details send me EMAIL or use the REGISTRATION form.
  © Copyright 1995-2021 by Angelika Langer.  All Rights Reserved.    URL: < http://www.AngelikaLanger.com/Courses/Java8.html  last update: 4 Nov 2021