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 
Lambdas & Streams In Depth

Lambdas & Streams In Depth
COURSE DESCRIPTION
Major extensions to the language and the JDK have been released with Java 8 - most prominently "Lambdas & Streams".

The new language features include lambda expressions and method references, both of which support programming techniques known from functional languages.  Now that Java has multiple inheritance via default interface methods programming techniques similar to mixins and traits are possible.  In this seminar attendants will gain an overview of all new language features and will practice their use in hand-on labs. 

Mastering lambdas is the prerequisite for successfully using streams.  Streams are an extension to the JDK collection, which underwent a major overhaul in Java 8.  Streams 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 forEach-filter-map-reduce to advanced operations such as flatMap and collectors.  Attendants will practice the use of streams in numerous labs. 

The key motivation for leaning about streams is the convenient way in which they support parallelized access to sequences. In order to understand the complex performance model of parallel stream operations the seminar provides insights into the inner workings of streams. 

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

This is a course for Java programmers who want to use lambdas and streams in Java  in practice and need a thorough understanding of these novel language feature and APIs in Java. The course is designed to build on existing expertise as Java programmers and take the attendants' skills one step further. Prerequisite for these seminars is at least 1 year of experience with Java or equivalent knowledge. Experience with lambdas or streams are not required. 

 
COURSE CONTENT


 

Language Features
  • Lambdas Expressions
  • Method/Constructor References
  • Functional Interfaces
  • Default & Static Interface Methods
  • Programming with Lambdas
Streams API
  • ForEach-Filter-Map-Reduce
  • Fluent Programming
  • Intermediate & Terminal Operations 
  • Stream Sources & Stream Creation
  • Mappers & Collectors
  • Optional<T>
  • Error Handling
Stream Internals
  • Pipelined Execution 
  • Stateless & Stateful Operations
  • Non-Interference Requirement
  • Ordering & Associativity
  • Reduce vs. Collect
  • Sequential & Parallel Execution
  • Performance Model of Parallel Streams
Stream Extensions
  • User-Defined Collectors
  • User-Defined Stream Sources
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

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)
 
 
 
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-2016 by Angelika Langer.  All Rights Reserved.    URL: < http://www.AngelikaLanger.com/Courses/LambdasStreams.html  last update: 24 Nov 2016