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

  GENERAL INFO
  SCHEDULE
  REGISTRATION
  
  JAVA
    EFFECTIVE JAVA
    CONCURRENCY
    PERFORMANCE
    LAMBDAS
    JAVA 8
    GC TUNING
    MEMORY MODEL 
    JAVA INTRO

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

GENERICS 
LAMBDAS 
IOSTREAMS 
ABOUT 
NEWSLETTER 
CONTACT 
New Features in Java 8

New Features in Java 8
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. 

In addition to lambdas and streams, Java 8 comes with several new concurrency utilities.  The CompletableFuture is an alternative to the regular Future and supports asynchronous (rather than synchronous) result processing. The CompletableFuture supports reactive programming in a fluent style - yet another API that uses lambda expressions and method references.  The remaining new concurrency features ( StampedLock , accumulators, and the @Contended annotation) provide means for expert users who strive for better performance of their multi-threaded applications.

Further miscellaneous extensions to the JDK include the Date/Time API (an alternative to abstractions such as Date , Calendar , etc.), type annotations (such as @NonNull , @Immutable , @ReadOnly , etc.) and related type checkers, and the metaspace (replaces the permanent generation).

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 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. Experience with lambdas or streams is not required. Sound knowledge of concurrent programming in Java will aid understanding of the new concurrency utilities.

 
COURSE CONTENT


 

Language Features
  • 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
Concurrency Utilities
  • Completable Future
  • Stamped Lock
  • Accumulators
  • @Contended
Miscellaneous
  • Date/Time API
  • Type Annotations
  • Metaspace vs. PermGen
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-2014 by Angelika Langer.  All Rights Reserved.    URL: < http://www.AngelikaLanger.com/Courses/Java8.html  last update: 8 Dec 2014