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
is an alternative to the
and supports asynchronous (rather than synchronous)
result processing. The
supports reactive programming
in a fluent style - yet another API that uses lambda expressions and method
references. The remaining new concurrency features (
accumulators, and the
annotation) provide means for
expert users who strive for better performance of their multi-threaded
Further miscellaneous extensions to the JDK include the Date/Time API
(an alternative to abstractions such as
etc.), type annotations (such as
etc.) and related type checkers, and the metaspace (replaces the permanent
Working knowledge of Java; in-depth experience
with Java not required.
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