This course looks at the new language features and APIs from Java 9 to Java 17. The most important change is undoubtedly the introduction of modules, as this will affect all Java applications going forward. There are also several new language features and APIs, including Reactive Streams, a standard HTTP2 client API, process API improvements, and more. We'll take a full look at all these new features, and discuss strategies for adopting and integrating them into your existing codebase.
Andy Olsen - author of the course
Andy is a freelance consultant and instructor based in the UK, working mostly in the City of London and Oxford. Andy has been working with .NET since the Beta 1 days and has extensive experience in many facets of .NET development including WCF, WPF, WF, ASP.NET MVC Web development, and mobile applications. Andy has designed and written many Microsoft Official Curriculum courses in the last decade, and has been engaged as author and technical reviewer with Apress on some of their biggest selling books.

Introduction
- Java in the 'Post-Java-8' era
- Tool support
- Oracle JDK vs. OpenJDK
- Using JShell
Java Modules
- Getting started with Java modules
- Using the modular JDK
- Creating a modular application
- Creating a multi-module app
- Modularized JARs
Going Further with Java Modules
- Standalone applications
- Services
- The unnamed module
- Automatic modules
- Migration strategies
New Language Features
- Private methods in interfaces
- Type interference
- Miscellaneous improvements
- Multi-version JARs
Collection Enhancements
- Immutable collections
- Enhancements to the Stream interface
- Enhancements to the Optional class
Pattern Matching
- Getting started with pattern matching
- Pattern matching techniques
Records
- Getting started with records
- Defining members in a record
- Additional techniques for records
Switch Usage
- switch statement enhancements
- switch expressions
Sealed Classes
- Getting started with sealed classes
- Additional techniques with sealed classes
Reactive Streams
- Overview of reactive programming
- Understanding the Java Flow API
- Implementing publishers and subscribers
- Implementing processors
- Practical applications
Miscellaneous New APIs
- Process API improvements
- Walking the stack trace
- HTTP/2
- Garbage collection
- Enhanced @Deprecated annotation
- Minor tweaks

1. Hva lærer jeg på dette kurset?
Kurset gir deg en praktisk og grundig gjennomgang av alle viktige endringer i Java fra versjon 9 til 17. Du lærer å:
- Forstå og bruke Java Platform Module System (JPMS)
- Ta i bruk nye språkfunksjoner introdusert i moderne Java
- Jobbe med de nyeste API-ene fra Java 9–17
- Implementere Reactive Streams i praksis
- Lage en strategi for hvordan du kan modernisere en eksisterende Java-kodebase
- Navigere overgangen fra Java 8 til moderne Java på en trygg måte
2. Hvem passer kurset for?
Kurset passer for utviklere som:
- Jobber i Java 8 i dag og trenger en strukturert vei til moderne Java
- Ønsker bedre ytelse, modularitet og moderne språkfunksjoner
- Arbeider i større kodebaser som skal oppgraderes
- Ønsker innsikt i nye API-er, Reactive Streams og Java 17 LTS
- Har behov for å forstå modul-systemet før migrering
3. Trenger jeg forkunnskaper?
Ja. Du bør ha:
- God erfaring med Java SE 8
- Kjennskap til objektorientert programmering, lambdaer og streams
Ingen forkunnskap om modul-systemet er nødvendig.
4. Hva er hovedtemaene i kurset?
Java Platform Module System (JPMS)
– Strukturering av applikasjoner med moduler
– Fordeler, migreringsstrategier og modulariseringsdesign
– Bygging og pakking med moduler
Nye språkfunksjoner (Java 9–17)
– Var på lokale variabler
– Records
– Sealed classes
– Switch expressions
– Pattern matching
– Tekstblokker
– Forbedringer i garbage collection
Nye API-er i moderne Java
– HTTP/2 Client API
– Nye Process API-funksjoner
– Collections-fabrikkmetoder
– I/O- og file-systemforbedringer
Reactive Streams
– Introduksjon til Flow API
– Publisher/Subscriber-modellen
– Integrasjon med moderne reactive frameworks
Migrerings- og adopsjonsstrategier
– Fra monolitt til moduler
– Hvordan gå fra Java 8 til Java 11/17
– Praktiske tips for å modernisere kodebaser steg for steg
5. Er kurset praktisk?
Ja, kurset bygger på hands-on øvelser som inkluderer:
- Migrering av en Java 8-applikasjon til moduler
- Bruk av nye API-er og språkfunksjoner
- Oppsett og testing av Reactive Streams
- Praktisk arbeid med records, sealed types og pattern matching
6. Hvilke verktøy brukes?
Du jobber typisk med:
- Java 17 LTS
- Maven eller Gradle
- IntelliJ IDEA / Eclipse / VS Code
- Kommandolinjeverktøy for moduler og pakking
7. Får jeg kursbevis?
Ja, alle deltakere mottar kursbevis etter gjennomført kurs.
8. Hvorfor bør jeg ta dette kurset?
Fordi moderne Java gir deg:
- Bedre ytelse og ressursbruk
- Mer robust og fleksibel arkitektur med moduler
- Nyere språkfunksjoner som forenkler koden
- Moderne API-er som erstatter gamle rammeverk
- En klar vei videre mot fremtidige versjoner som Java 21 og 23

See other courses to explore:
See course areas to explore: