Java 8 in Anger

Content and resources for the Java 8 in Anger presentation.

This vJUG video of Java 8 in Anger shows the Java 8 version of this talk in its clearest form. Here I also have links to other material I've published on this topic, and to the resources I used to create the code.

In 2016 this talk has evolved to also contain some Java 9 features too, and the latest version even shows how to use TDD to help figure out which stream operations you need. The video of the latest version is not yet available.


Other videos

More details

Firstly, you might want to read Why Java 8?, and 5 Java 8 Features That You Won't Be Able To Live Without.

You can follow my tutorial on "Building Java 8 Applications with Microservices", which is a deep dive into the code I write in the presentation - 3 hours of material where I go into each section in a lot more detail:

Alternatively, you can watch this tutorial with a Safari Books Online subscription.

I also wrote an article for Oracle Technology Network in which I go into some of the interesting code sections in more detail. It also shows more clearly some of the features of IntelliJ IDEA that make the transition to Java 8 a bit easier for developers.

Project code

  • The full application code on the master branch branch of my sense repository.
  • If you want to play along from the beginning of the demo, check out starting_point.
  • There's a branch which shows the steps of the application as a series of independent steps.
  • You will find a whole mess of various branches. The conference names are the final working code demoed at that conference.


The following is a list of the resources I used to create the talk, and can be used to find more information about any of the technologies or approaches used during the presentation.

Java 8 & Java EE Overview

Lambdas and Streams



Date and Time




Special Thanks To...

Martin Thompson, Richard Warburton,
Robert Annett and Hadi Hariri for
code reviewing and giving great suggestions. Not all suggestions have been implemented yet, so all errors are my own.


Java 9 is just around the corner, and yet many of us developers have yet to use Java 8 features in an application. The
goal of this presentation is to move beyond slide-sized examples of streams and lambdas, and to show how to build a
fully working end-to-end application using as few external dependencies as possible, and the latest version of Java.

In this session, Trisha will build a Java 8 application live. This application will consume a real-time feed of high
velocity data, contain services that make sense of the data, and present it in a JavaFX dashboard. Along the way, we'll
encounter Java 8 streams, lambdas, new ways of working with collections, and bump into the new date and time API.


  • Trisha Gee

    Trisha is a software engineer, Java Champion and author. Trisha has developed Java applications for finance, manufacturing and non-profit organisations, and she's a lead developer advocate at Gradle.