courses / java / level 3

level 3 · expert

advanced
java.

Write Java like a professional: generics, lambdas, streams, safe values, concurrency, patterns and tests.

  • 28 lessons
  • 7 units
  • 5 h 39 m in all
  • £0, for good

what’s inside.

For people who build things on their own and want code that others trust and can change.

Java Level 3 is for learners who have finished Levels 1 and 2. In 28 lessons you master generics, lambdas, streams, Optional, immutable objects, threads, thread pools, futures, design patterns, the JVM and testing, with a guess, a hands-on task and a fix-the-bug challenge in every lesson. It ends with a level check: a concurrent word counter, polished and tested, that you ship yourself.

every lesson goes the same way.

  1. meet it
  2. guess first
  3. your turn
  4. fix it
  5. nailed it

unit 1

Generics

Write one piece of code that works safely for many types.

4 lessons · 47 min

  1. One box, any type11 minWrite a class once and let it hold any type, checked by the compiler.
  2. Generic methods11 minWrite one method that works with lists of anything.
  3. Bounded types12 minPromise Java what a type can do, then use it.
  4. Wildcards13 minAccept lists of related types, safely, with a ?.

unit 2

Lambdas

Pass behaviour around like a value.

4 lessons · 47 min

  1. Lambdas12 minWrite a small piece of behaviour as a value and hand it over.
  2. Functional interfaces11 minGive your lambdas a type of your own.
  3. The built-in toolkit12 minUse Java's ready-made lambda types instead of writing your own.
  4. Method references12 minPoint at a method that already exists, and sort by several keys.

unit 3

Streams

Process whole collections in clear, step-by-step pipelines.

4 lessons · 48 min

  1. Stream pipelines12 minFilter and change a whole collection in one readable pipeline.
  2. Numbers from streams11 minCount, add up and check whole collections in one go.
  3. Sort, slice and flatten12 minOrder a stream, take the top few, and open up nested lists.
  4. Grouping with collectors13 minTurn a stream into a table of counts, a sentence or two piles.

unit 4

Safe values

Make missing values and surprise changes impossible.

4 lessons · 48 min

  1. Optional instead of null12 minSay "there might be nothing here" in a way nobody can ignore.
  2. Optional chains12 minWork inside an Optional without opening it by hand.
  3. Immutable objects12 minBuild objects that can never change after they are made.
  4. Unmodifiable collections12 minHand out lists and maps that nobody can tamper with.

unit 5

Threads

Run work at the same time without losing a single result.

4 lessons · 49 min

  1. Threads12 minRun two jobs at the same time and wait for both to finish.
  2. Race conditions13 minSee why shared counters lose updates, and lock them with synchronized.
  3. Atomic values11 minCount across threads without writing a single lock.
  4. Thread-safe maps13 minLet many threads fill one map without losing a count.

unit 6

Tasks

Hand work to thread pools and futures, and collect every answer.

4 lessons · 50 min

  1. Thread pools12 minHand jobs to a team of reusable threads instead of making your own.
  2. Futures13 minGet an answer back from every job, in the order you asked.
  3. CompletableFuture12 minChain steps that run in the background, one after another.
  4. Combining and recovering13 minWait for several background jobs at once, and survive when one fails.

unit 7

Like a professional

Shape, check and test your code the way working developers do.

4 lessons · 50 min

  1. The strategy pattern12 minSwap one way of doing a job for another without touching the code that uses it.
  2. The builder pattern13 minCreate objects with many optional settings, clearly and safely.
  3. Inside the JVM12 minSee where your variables and objects live, and how memory is cleaned up.
  4. Testing like a pro13 minProve each small piece works, including the awkward cases.
end of level 3 level check: a concurrent word counter Build one small project with everything from this level. Pass it and your face levels up. see the check

finished java?

pick your next language.

see all courses