Java 8 Course
The release that changed how Java is written - lambdas, streams and the functional turn.
Take this course in the learning hubLessons
- Why Java 8 changed everythingJava 8 was the biggest language shift since generics, and every release since builds on it.
- Lambdas: the syntax that started itSee an anonymous class collapse into a lambda, and understand what the compiler actually does.
- The java.util.function cataloguePick the right built-in interface instead of inventing your own for every callback.
- Method references: four kindsKnow which of the four forms you are writing, because they bind arguments differently.
- Default methods and why they existDefault methods were not a convenience - they were the only way to add stream() to Collection.
- Why Streams arrivedUnderstand the collections pain Streams solved, not the API surface - Streams has its own section.
- Optional and the null problemWhy a wrapper type was added, and the narrow job it was actually designed for.
- java.time replaces Date and CalendarThe old date classes were mutable, zero-indexed and not thread safe. Java 8 replaced them wholesale.
- CompletableFuture: Future grows upPlain Future could only block. CompletableFuture let you say what happens next.
- PermGen removed, Metaspace arrivesThe JVM change in Java 8 that silently deleted a whole category of production outage.
- Collectors brought grouping to JavaThe single addition that replaced the most hand-written code in enterprise Java.
- The parallel streams promiseJava 8 sold free parallelism. Here is when the promise holds and when it costs you.
- The small additions that stuckBase64, StringJoiner, Map defaults and parallelSort - unglamorous but used every day.
- Repeatable and type annotationsJava 8 let annotations repeat, and let them appear anywhere a type does.
- Migrating onto Java 8What to change first, what breaks, and what to leave alone.
- Getting off Java 8: what actually breaksThe four failures that stop most Java 8 migrations, and how to clear them.