Programming fundamentals

Advanced Java: concurrency, JVM, tests and performance

Master advanced Java: modern concurrency, JVM memory, streams, tests and optimization.

Request this program
Duration
28 h · 4 days
Level
Advanced
Format
On site · Remote · Blended
Max. group size
12 participants

Overview

This program is for Java developers who want to go beyond the basics: modern concurrent programming (executors, asynchronous tasks, virtual threads), class loading, memory and garbage collection, recent language features, streams, testing with JUnit and an optimization approach with profiling tools. The goal is to write more reliable and faster applications.

Who this program is for

  • Experienced Java developers
  • Architects and tech leads
  • Performance and operations teams

Prerequisites

  • Practice of Java (objects, collections, exceptions)

Learning objectives

  • Write safe concurrent code
  • Use Fork/Join, CompletableFuture and virtual threads
  • Understand class loading, bytecode and memory
  • Choose and tune a garbage collector
  • Use the language's recent features
  • Test with JUnit 5 and TDD
  • Profile and optimize

Detailed curriculum

8 modules · 28 h · 4 days

Day 1
Concurrent programming3.5 h🛠 1 workshop
30% theory · 70% practice
  • Threads and synchronization
  • Deadlocks and race conditions
  • Executors, Callable and Future
  • Scoped values
  • Concurrency best practices
🛠 Hands-on workshops
Hunting concurrency problems1.5 h

Diagnose and fix concurrency errors.

✅ Deliverable : Fixed, commented code
Advanced concurrency3.5 h
50% theory · 50% practice
  • Fork/Join and structured concurrency
  • CompletableFuture
  • Locks, semaphores and barriers
  • Reflection
  • Virtual threads
Day 2
The JVM under the hood3.5 h
50% theory · 50% practice
  • Class loaders
  • Bytecode
  • Memory organization
  • Modern garbage collectors
  • JVM tuning
Modern language3.5 h🛠 1 workshop
30% theory · 70% practice
  • Switch expressions
  • Pattern matching
  • Records
  • Sealed classes
  • Migrating to recent versions
🛠 Hands-on workshops
Modernize code1.5 h

Refactor old code with recent features.

✅ Deliverable : Modernized code
Day 3
JDK tools and recent APIs3.5 h
50% theory · 50% practice
  • JShell
  • ProcessHandle
  • HTTP client
  • Modules
  • Command-line tools
Tests and TDD3.5 h🛠 1 workshop
30% theory · 70% practice
  • Test-driven development approach
  • JUnit 5 in depth
  • Test doubles and mocks
  • Parameterized tests
  • Coverage
🛠 Hands-on workshops
TDD kata2 h

Develop a feature using TDD.

✅ Deliverable : A test suite
Day 4
Lambdas, streams and modularity3.5 h
50% theory · 50% practice
  • Lambda expressions
  • Streams and parallel streams
  • Collectors
  • Java modules
  • Performance pitfalls
Optimization approach3.5 h🛠 1 workshop
30% theory · 70% practice
  • Method: measure before optimizing
  • Profiling with JFR, VisualVM, MAT
  • Load testing
  • Memory leaks and garbage collector tuning
  • Improvement plan
🛠 Hands-on workshops
Optimize an application2.5 h

Profile an application and apply three optimizations.

✅ Deliverable : A quantified report

Tools and technologies

IntelliJ IDEAJUnitJavaMaven

Teaching methods

  • Alternating short lectures and hands-on work
  • Live demonstrations by the trainer
  • Capstone project built throughout the modules
  • Group corrections and discussion of best practices

Assessment

  • Hands-on exercises corrected in each module
  • Mini-project completed at the end of the course
  • Knowledge-check quiz

Required equipment

  • A computer with an internet connection
  • A recent JDK, a Java IDE and profiling tools

Resources provided

  • Course materials and repository of corrected exercises

Career outcomes

  • A faster, more stable application
  • A tooled optimization method
  • Reliable automated tests

Related video courses

My video courses that go with this program, to get ready for the training or to review afterwards. Free with an account.