Java 8 Update

Java 8 Update
Start Date29th September 2014
Course CodeSS869
Full Fee
Duration2 days
ProviderTo be advised
Network Member Subsidised Fee€450.00
Download Course PDF  
  Course expired

Programme Overview
This course enables experienced Java developers to understand the full range of features arriving in Java 8 and to start using them immediately.
Course Objectives and Learning Outcomes
This new release of Java aims to address new language features, enhancements to existing libraries and numerous low level improvements to the JVM. Developers can use these enhancements to write shorter, safer applications that are amenable to multi-core devices.
Who should attend

Java Developers.

Delegates must be proficient in Java 7 with several years’ experience developing in industry.
Course Content

Overview of What's New

  • The introduction and assimilation of lambdas into Java
  • Functional and parallel support within the code libraries
  • The new Date and Time (JSR 310) and Type Annotation (JSR 308) API's
  • Many additional libraries and virtual machine enhancements


Working With Lambda Expressions

  • Understanding the concept and purpose of lambdas
  • The various syntax options when declaring lambdas
  • Lexical scoping and 'effectively final' variables
  • Method references as shortcuts to lambdas
  • Type inference of parameters in lambdas
  • Best practises when declaring and using lambdas
  • Declaring interfaces to be used with lambdas
  • Making use of the @FunctionalInterface annotation
  • How lambdas are implemented at the byte code level
  • Limitations of lambdas compared to other languages


Functional Programming With Lambdas, Collections and Streams

  • Introducing the interface
  • Creating streams of objects from collections and via of
  • Using parallel and sequential to switch processing model
  • Performing filtering and mapping on the contents of streams
  • Using reduce to compute a final value from a stream
  • Understanding the purpose and value of flatMap
  • Performing bulk operations on the elements of collections
  • The Optional Monad and Monadic Composition


Other Language Features

  • Default implementations for interface methods (aka Extension Methods)
  • Parallel array sorting using new methods in java.util.Arrays
  • Enhancements to type inference (aka Generalized Target-Type inference)
  • Better support for globalization (Unicode 6.2 and BCP 47 language tags)
  • Scalable thread-safe counters in java.util.concurrent
  • Enhancements to reflection using the javax.lang.model types
  • Standardised support for Base 64 encoding and decoding
  • Support for unsigned integer arithmetic via static methods
  • Programmatic support for working with JavaDoc
  • Improvements in the security libraries


The Date and Time API

  • How JSR310 evolved from the Joda Time library
  • Working with instants, clocks and time zones
  • Performing calculations with dates and times
  • Using adjusters to make common changes to dates
  • Parsing and formatting dates and times
  • Combining the API with legacy code


Enhancements to Annotations

  • Limitations on existing support for annotations
  • How annotating usage enables stronger code contracts
  • Annotating type parameters in generic code
  • Annotating inheritance relationships
  • Annotating exception specifications
  • Annotating calls to new, instance of and casts
  • Using annotations multiple times on the same type


JVM and JDK Improvements

  • Compact profiles for the JVM
  • How HotSpot merges with JRockit in Java8
  • Why the PermGem region has been removed
  • Retirement of some garbage collection settings
  • Enhancements to the invokedynamic instruction
  • Enhanced control of the Java compiler at runtime
  • The Nashorn JavaScript compiler
Other course details
Java 8 is the most important update to Java since its inception. The limits of the existing language have been exposed by the challenge of multi-core hardware, the industry adoption of functional principles, the continued evolution of C# and the growing adoption of alternative JVM languages like Scala and Clojure.
About the Trainer

Garth Gilmour is one of Irelands most highly rated and experienced development trainers. Since January 2000 Garth  has delivered over 500 courses, workshops and mentoring sessions – from which he have consistently achieved excellent feedback. Typical examples of work include:

  • Bespoke programs for migrating experienced Java developers to .NET (and vice-versa)
  • Continuous mentoring to teams implementing their first JEE or .NET projects
  • Workshops for Java developers in Agile Methods, Design Patterns and UML
  • Induction programs lasting two to three months for large groups of IT graduates
  • Preparing candidates for the Sun Java certification process