Kurs om

Modern Java, version 8/9/...

Kurs om de viktigaste nyheterna i Java sedan version 8 fram till nu

Java version 8, införde tre begrepp som i grunden förändrar ditt sätt att designa programkoden inuti metoderna/funktionerna av en klass. Dessa tre är Lambda Expressions, Data Stream Pipelines samt Asynchronous Computation.

Java version 9, förändrade vårt sätt att designa Java applikationer, eftersom det nya modulsystemet (JPMS) är så pass genomgripande och skapar möjligheter för snabb uppstart av en Java applikationer och eliminering av class-not-found problem.

Java version 16, införde bland annat records, som är en förenklad form av klasser och är tänkt för data-värden och andra sammanhang där man vill ha immutable classes.

Denna kurs vänder sig till dig som idag arbetar med en tidigare version av Java och önskar att snabbt komma igång med att tillämpa alla nyheter i språket och standardbiblioteket.

Snabbfakta

Namn
Modern Java, version 8/9/...
Ämne
Java & JVM språk
URI
jvm/java-modern
Längd
3 dagar
Nivå
Intermediate
Målgrupp
Java programmerare
Förkunskaper
Rutinerad i Java programmering
Programvara & Verktyg
  • Java JDK, version 17 eller senare
  • MS Visual Code || JetBrains IntelliJ IDEA

Kursdatum

Här ser du vilka kursdatum som är tillgängliga. Klicka på en av datumknapparna för att anmäla dig till ett kurstillfälle. På kursen pratar läraren svenska, medan vårt kursmaterial alltid är författat på engelska.

Missa inte vår samfaktureringsrabatt! Är ni fler personer från samma företag/organisation som går på samma kurs, rabatteras tillkommande personer med 25% . Ni anmäler er till kursen en och en, men uppger samma företag, så ordnar vi resten. Samtliga deltagare från samma företag ingår på samma faktura, den första till fullt pris och resterande till rabatterat pris.

Kurs i Klassrum

Du sitter bekvämt i ett av våra klassrum, vilka finns centralt placerade i Stockholms innerstad.

I priset ingår tryckt kursmaterial (och som PDF), samt kaffe/te med smörgås på förmiddagen och kaffe/te med bulle på eftermiddagen.

Pris: 21 000 kr + moms

Kurs via Zoom

Du sitter bekvämt framför datorn och deltar i kursen via internet. Vi använder programvaran Zoom för alla våra fjärrkurser.

I priset ingår kursmaterial som PDF.

Pris: 16 500 kr + moms

Just nu finns det inga datum tillgängligt. Titta förbi om några dagar eller kontakta oss och be oss lägga upp fler kursdatum.

Kurs hos Er

Om ni är tre eller fler personer från samma företag eller organisation, kan ni beställa en företagsanpassad kurs. Då håller vi kursen på ett datum som passar er. Antingen på plats i era lokaler eller som en fjärrkurs. Vi kan också hålla den muntliga framställningen på engelska. Klicka på knappen nedan för att be om en offert.

Detta får du lära dig

Här är ett sammandrag i punktform av vad du får lära dig på kursen. Eftersom kursmaterialet är författat på engelska, så återger vi sammandraget också på engelska.

  • Write Java programs with lambda expressions
  • Be able to write programs with data streams / pipeline chains using Stream
  • Be able to write programs with asynchronous execution using CompletableFuture
  • Be able to use the new classes for dates, times and intervals
  • Design Java applications with modules
  • Understand how modules are dependent on each other
  • Create a dedicated and streamlined JRE for a Java program, using jlink
  • Be able to implement interfaces with private methods
  • Be able to implement a pipeline of OS processes

Kursinnehåll

Eftersom kursmaterialet är författat på engelska, så återger vi innehållet också på engelska.

The Java Time-Line

JShell - The Java REPL

Selected Features of Java 9/10/.../latest

Functional Interfaces

Functional interfaces is a syntactic foundation for lambda expressions covered in the next chapter. Here we discuss what it is and other syntactic enhancements of interfaces in Java to support the introduction of lambda expressions.

Lambda Expressions

Lambda expressions (aka closures or anonymous functions) is much welcome addition to the Java syntax, and the fundamental building block on virtually almost everything else we cover in this course.

Selected Java API Class Updates

Of course, have all the collection classes been augmented to support lambdas. Here we walk you through the changes both for collection classes and others as well.

Switch Expressions

The switch statement have been modified to also act as an expression. Here we show you the new syntax and discuss what we might see in future versions of Java.

Records

Records are a simplified form of classes and also immutable. For simple use cases, such as value types, records are a perfect fit.

Data Stream Pipelines

Java has always been about data-structures and its organization. What you did inside the method of a class was left to your discretion, until now. Say hello, to data streams. After you have seen the merits of writing functional code as a pipeline chain of filters, transformations and aggregators, you will never go back. Trust us on this.

Modules

What is modules in Java 9 (JPMS).

Threaded Computation

Short overview of how the threading support has evolved in Java and a motivator and background for the next chapter.

Asynchronous Computation

Asynchronous computation has over the last half-decade emerged as the most important computation paradigm, because of how efficient it handles system resources and scales way beyond threaded computation. In this chapter you will learn all you need to know in order to write you own asynchronous computation chains using the new CompletableFuture class. We will also show you how to combine Stream with CompletableFuture.

Date and Time

First we had java.util.Date, with its millennium bug problem. Then came java.util.Calendar as a mere overkill and then nothing for two decades. Finally, java.time has arrived as a proper solution for dealing with time, date, duration and time-zones.

File I/O

Overview of java.nio classes. Most of them was introduced before Java 8, but many has then been updated to support lambdas and streams processing.

OS Processes

HTTP Client

JVM Oriented Improvements

-->