Our Blog
Sharing Our Experiences
- Java project & consultancy
- Cloud Native Development
- AI & IoT

Faros Team
Waarom upgraden naar Java 21 in 2025: de voordelen én een blik op de toekomst
- by Faros Team
- -
- - Development, Java
Java 21, uitgebracht in september 2023, is een Long-Term Support (LTS)-release en biedt stabiliteit, betere prestaties en moderne features. Inmiddels is Java 22 in maart 2024 gelanceerd als een non-LTS-release, en later dit jaar wordt Java 25 verwacht als de volgende LTS-versie. Toch draaien veel bedrijven nog steeds op Java 17 of ouder.
Waarom zou je overstappen naar Java 21? Wat betekent de komst van Java 22 en binnenkort Java 25 voor jouw keuze? In deze blogpost bespreken we de belangrijkste verbeteringen van Java 21, de impact van Java 22, en waarom upgraden nog steeds de beste beslissing is.
Waarom upgraden naar Java 21 in 2025?
Veel organisaties stellen upgrades uit vanwege compatibiliteit of kosten, maar langer wachten maakt de overstap alleen maar moeilijker. Java 21 biedt niet alleen prestatieverbeteringen, maar zorgt er ook voor dat je applicaties veilig en toekomstbestendig blijven.
De voordelen van Java 21 op een rij:
LTS-ondersteuning: Regelmatige updates en langdurige beveiligingspatches.
Moderne features: Pattern Matching, Virtual Threads en String Templates maken ontwikkeling efficiënter.
Beter geheugenbeheer: Minder overhead en betere multithreading-prestaties.
Meer stabiliteit dan Java 22: Java 22 introduceert experimentele functies, maar is geen LTS-release.
De belangrijkste nieuwe features in Java 21
Pattern matching: kortere en schonere code
Pattern Matching in Java 21 vermindert boilerplate-code en verbetert de leesbaarheid.
Record patterns
Maakt het mogelijk om direct waarden uit een record-object te halen zonder extra code.
record Persoon(String naam, int leeftijd) {}
Persoon p = new Persoon("Alice", 30);
if (p instanceof Persoon(String naam, int leeftijd)) {
System.out.println(naam + " is " + leeftijd + " jaar oud.");
}
Pattern matching in switch
Maakt het eenvoudiger om switch-statements te gebruiken op basis van type.
static String getType(Object obj) {
return switch (obj) {
case String s -> "String: " + s;
case Integer i -> "Integer: " + i;
case null -> "Null object";
default -> "Onbekend type"; };
}
Virtual Threads: revolutionaire multithreading in Java
Virtual Threads maken het mogelijk om duizenden threads efficiënt te beheren zonder veel geheugenverbruik.
Voordelen van Virtual Threads:
Snellere en lichtere threads zonder OS-overhead.
Beter presterende applicaties zonder complexe async-programmering.
Geen aanpassing van bestaande blocking-code nodig.
ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor();
executor.submit(() -> System.out.println("Draait in een virtual thread!"));
Sequenced Collections: betere controle over lijsten en sets
Java 21 introduceert SequencedCollection, waardoor je lijsten en sets efficiënter kunt beheren.
Handige nieuwe methodes:
getFirst()
engetLast()
om eerste of laatste elementen op te halen.removeFirst()
enremoveLast()
om elementen te verwijderen.reversed()
om de volgorde om te keren.
SequencedCollection namen = new LinkedList<>();
namen.add("Alice");
namen.add("Bob");
System.out.println(namen.getFirst()); // Alice
String Templates: eenvoudiger en veiliger werken met strings
Met de nieuwe String Templates feature kan je eenvoudig expressies in een string injecteren.
String naam = "Faros"; String boodschap = STR."Welkom bij \{naam}!";
Deze feature voorkomt fouten die kunnen optreden door verkeerde concatenatie van strings. Daarnaast ondersteunt het de veilige verwerking van JSON en SQL, waardoor je minder kans hebt op injectie-aanvallen.
⚠️ Let op: de String Templates feature is beschikbaar in preview en moet geactiveerd worden via de JVM-optie --enable-preview
.
Wat brengt de toekomst?
Naast Java 21 zijn er inmiddels verschillende niet-LTS-versies verschenen die kleinere, maar interessante nieuwe features introduceren. Hoewel deze versies geen langdurige ondersteuning bieden, geven ze wel een goed beeld van waar de taal naartoe evolueert.
Java 22
Unnamed Variables: eenvoudiger en duidelijker code
Sinds Java 22 kun je een underscore (_
) gebruiken als naamloze variabele, zoals in andere populaire talen:
static int count(Iterable orders) {
int total = 0;
for (Order _ : orders) total++;
return total;
}
Ook bruikbaar in switch-patterns:
switch (ball) {
case RedBall _ -> process(ball);
case BlueBall _ -> process(ball);
}
Launch Multi-File Source-Code Programs
Voer meerdere .java
-bestanden direct uit zonder vooraf te compileren:
// Prog.java
class Prog {
public static void main(String[] args) { Helper.run(); }
}
// Helper.java
class Helper {
static void run() { System.out.println("Hello!"); }
}
Foreign Function & Memory API
Een stabiel alternatief voor JNI (Java Native Interface) waarmee je vanuit Java native libraries en geheugenstructuren kunt gebruiken op een veilige manier.
Java 23
Markdown in JavaDoc
Gebruik Markdown om overzichtelijke, moderne documentatie te schrijven, in plaats van de klassieke combinatie van HTML en @tags
.
Java 24
Verwijderen van Windows 32-bit x86 ondersteuning
Door het einde van 32-bit ondersteuning in Windows 10 wordt deze port definitief geschrapt. Ook andere 32-bit x86-systemen zijn nu deprecated.
Stream Gatherers: meer flexibiliteit voor complexe datastromen
De Stream API krijgt in Java 24 een krachtige uitbreiding met Stream::gather(Gatherer)
. Deze nieuwe intermediate operation laat je complexe bewerkingen uitvoeren zoals het bufferen van elementen (bijv. sliding windows), contextafhankelijke filtering of geavanceerde aggregatie, nog vóór de eindbewerking.
Gatherers vullen zo de kloof tussen standaard tussenoperaties (map
, filter
, …) en de terminale collect
-operatie, en bieden veel meer flexibiliteit binnen je streamverwerking.
Quantum-resistente cryptografie
Java 24 ondersteunt nieuwe NIST-standaarden (ML-DSA en ML-KEM) voor digitale handtekeningen en het encapsuleren van encryptiesleutels. Deze algoritmes zijn ontworpen om bestand te zijn tegen aanvallen met quantumcomputers.
Conclusie: Java 21 is de beste upgrade in 2025
Java 21 biedt een perfecte balans tussen stabiliteit, prestaties en moderne features. Met Virtual Threads, Pattern Matching en String Templates maak je jouw code efficiënter en toekomstbestendig.
Waarom upgraden naar Java 21?
Langdurige LTS-ondersteuning.
Minder geheugenverbruik en betere prestaties dankzij Virtual Threads.
Veiligere en overzichtelijkere code met Pattern Matching en String Templates.
Klaar voor de toekomst: eenvoudig upgraden naar Java 24 of 25 wanneer gewenst.
Wil je jouw applicaties migreren naar Java 21 en profiteren van deze verbeteringen? Bij Faros helpen we je graag met advies en implementatie. Neem contact met ons op voor een vrijblijvend gesprek. Samen brengen we jouw Java-stack naar het volgende niveau.
Share this post
