Training Catalogue / Languages and Frameworks

Java

8 modules
13 sessions

Modules

Take single modules or the whole track. Two hour sessions, combined into half days where it suits your calendar.

Foundation · 1 session

Java and the JVM

The Java landscape, the JVM and bytecode basics for newcomers.

  • The Java landscape
  • JVM and bytecode basics
  • JAR, WAR and EAR, and the module system
  • Garbage collection and classloading at a glance
Skip if already comfortable with the JVM from another JVM language.
Foundation · 2 sessions · multi-part

Java Language Basics

Types, control flow and methods for developers new to Java.

  • Types, literals and arrays
  • Choices and looping
  • Methods in depth including recursion
  • Console I/O and first programs
Skip or compress if experienced in another OO language.
Foundation · 2 sessions · multi-part

Object-Oriented Java

Classes, inheritance, interfaces and the equals/hashCode contract.

  • Classes, constructors and inheritance
  • Interfaces and abstraction
  • equals and hashCode done correctly
  • Enumerations and annotations
Practitioner · 2 sessions · multi-part

Functional Java and the Collections API

Lambdas, method references, streams and the modern Collections API.

  • Method references and lambdas
  • The Collections API
  • Streams and functional collections
  • Optional and parallel streams
Practitioner · 1 session

Generics, Dates and Robust Java

Generics, the modern Date/Time API and disciplined exception handling.

  • Generics in depth
  • Exception handling done well
  • The Date/Time API (JSR-310)
  • Writing robust, idiomatic Java
Practitioner · 1 session

Testing Java: TDD and BDD

JUnit, Mockito and Cucumber for test-first and behaviour-driven Java.

  • TDD with JUnit and Mockito
  • BDD with Cucumber
  • Gherkin syntax and step definitions
  • Building confidence in your code
Advanced · 2 sessions · multi-part

Advanced Java: Concurrency and Performance

Parallel streams, thread-friendly collections and JMH benchmarking.

  • Parallel programming with streams
  • Thread-friendly collections and fork/join
  • JMH benchmarking
  • Generics deep dive
Advanced · 2 sessions · multi-part

Advanced Java: Patterns and the Ecosystem

OO design patterns, DSLs, Gradle and the wider JVM language landscape.

  • OO design patterns in Java
  • DSLs and fluent interfaces
  • Gradle build automation
  • A survey of Scala, Clojure and Kotlin

Enquire About This Training

Tell us which modules interest you and we will propose a plan within 24 hours. Choosing Enquire on a module above fills in the subject for you. Add more than one if you like.