3 nieuwe features in Java 15

java

29 april 2020 – Na het afronden van Java 14 in maart 2020 is het werk aan de opvolger Java 15 in volle gang. De planning is dat deze release halverwege september gaat plaatsvinden. In dit artikel bespreken we alvast drie nieuwe features die in deze versie het daglicht zullen zien

1: The Z Garbage Collector

De nu nog experimentele Z Garbage Collector (ZGC) zal in versie 15 definitief aan de standaard worden toegevoegd. ZGC is een schaalbare low-latency garbage collector waar sinds JDK 11 uit 2018 druk aan wordt gewerkt. Vanwege de omvang en complexiteit van een dergelijke feature is besloten deze gradueel in te voeren en uit te werken. Sinds de eerste versies is er dan ook flink gesleuteld aan de ZGC. De pauzetijden worden steeds korter en er worden meer en meer features toegevoegd. Zo is de ZGC inmiddels NUMA-aware en pauzeert hij threads nagenoeg niet meer tijdens het doen van het zware werk. Daarnaast is de maximum heap size verhoogd van 4 naar maar liefst 16 terabytes! De ZGC ondersteund alle belangrijk besturingssystemen: Linux, Windows en MacOS. Ook na versie 15 zal de ZGC worden doorontwikkeld en vormt deze een belangrijk steunpilaar voor de toekomstige schaalbaarheid van Java.

2: Hidden classes

Het OpenJDK 15 voorstel spreekt onder andere over hidden classes. Dit zijn classes die niet niet direct gebruikt kunnen worden vanuit de bytecode van andere classes. Deze hidden classes zijn bedoeld voor frameworks die tijdens runtime dynamisch classes genereren en deze indirect gebruiken door middel van reflectie. Dit voorstel zal de efficiëntie van alle talen op de JVM verbeteren door het bieden van een standaard API om hidden classes te definiëren die non-discoverable zijn en een limited lifecycle hebben. Frameworks binnen en buiten de JDK kunnen hiermee straks eenvoudig dynamische hidden classes definiëren. Veel talen gebouwd bovenop de JVM maken gebruik van dergelijke functionaliteit vanwege de flexibiliteit en efficiëntie hiervan. Kortom, gestandaardiseerde ondersteuning voor hidden classes is een belangrijke aanvulling voor de toekomst van het gehele Java ecosysteem.

3: Text blocks

Text blocks waren voor het eerst te zien in JDK 13. Deze zijn bedoeld om het schrijven van Java programma’s makkelijker te maken. Met text blocks is het mogelijk om strings te introduceren die uit meerdere regels broncode bestaan, waardoor escape sequences in veel gevallen overbodig worden. Ook worden texts blocks op een voorspelbare manier weergegeven en heb je hier als programmeer indien gewenst controle over. Een van de doelen van text blocks is het verbeteren van de leesbaarheid van strings in Java programma’s die code geschreven in non-Java talen representeren. Er wordt ook nog gewerkt aan het toevoegen van escape sequences om volledige controle te hebben over white space en newlines. Een mooie quality of life verbetering dus!

Een voorbeeld van de nieuwe syntax voor een text block versus een "klassieke" string.

Tot slot

Vroege builds van JDK 15 kun je vinden op java.jdk.net. JDK 15 wordt een zogenaamde short-term feature release. De eerstvolgende long-term support (LTS) release is JDK 17, welke gepland staat voor september 2021. De huidige LTS release is JDK 11 uit 2018.

Ben je ook Java expert op zoek naar een nieuwe uitdaging? Bij Eonics zijn veel werkvormen mogelijk: een vast salaris, midlancen of zelfs freelancer worden! Eonics geeft jouw volledige vrijheid om te werken hoe jij wil. Nieuwsgierig? Laat je gegevens achter, dan nemen we zo snel mogelijk contact met je op voor een kennismakingsgesprek.