Oracle heeft onlangs Java 23 uitgebracht. Deze nieuwe release van de populaire programmeertaal brengt twaalf vooraanstaande verbeteringen, hoewel ze voornamelijk in preview verschijnen. Ook zijn de prestaties en runtime verbeterd.
De introductie van Java 23 volgt relatief kort op de introductie van de voorafgaande versie in maart van dit jaar.
De meeste van de in Java 23 toegevoegde nieuwe features, zoals de JDK Enhanchement Proposals (JEP’s), zijn nog wel in een preview.
Volgens maker Oracle is dit een teken dat het feedbackproces goed werkt. JEP’s veranderen veel en evolueren vaak een beetje in het feedbackproces en komen er dan vaak beter uit dan als zomaar iets ‘over de muur was gegooid’, is het commentaar van Oracle.
Nieuwe taalfeatures
In Java 23 zijn er onder meer nieuwe taalfeatures toegevoegd. Deze features stammen uit Project Amber. Dit project is een OpenJDK-initiatief om kleinere productiviteitsgerichte Java-code-eigenschappen te ontdekken en te stimuleren.
Een feature die uit dit initiatief in Java 23 in preview is toegevoegd, zijn primitieve types in patterns, instanceof en switch (JEP 455). Dit verwijdert de resticties voor primitieve types wanneer deze met patterns matching, instanceof en switch werken. Dit helpt Java om meer expressief te zijn, dat weer leidt tot meer productiviteit.
Een andere preview feature is module import declarations (JEP 476) waarmee ontwikkelaars alle door een module geëxporteerde packages kunnen importeren zonder dat de import code in de module aanwezig moet zijn. Hierdoor worden modulaire libraries volgens Oracle vaker herbruikbaar en helpt beginners met het gebruik ban libraries van andere aanbieders, zonder de packet-hiërarchie hiervoor te moeten leren.
Op het terrein van nieuwe taalfeatures zijn nu ook in preview declared classes en instance main methods (JEP 477) en flexibele constructor bodies (JEP 482) gepresenteerd.
Updates voor libraries
Oracle heeft in Java 23 ook verschillende updates voor libraries toegevoegd. Denk aan Class-File API, die in een tweede preview-ronde is, JEP 469 of een Vector API en een tweede preview van stream gatherers (JEP 473).
Verder in dit segment zijn binnen de nieuwste Java-versie ook andere librray updates toegevoegd. Deze zijn voor structured currency, waarmee ontwikkelaars groepen van taken die in verschillende threads draaien kunnen consolideren (JEP 480) en scoped values (JEP 481) die het delen van onveranderbare data binnen en tussen threads mogelijk maakt.
Overige udates en wijzigingen
Voor de prestaties en runtime is de belangrijkste update in de nieuwe Java-versie dat de Z Garbage Collector’s (ZGC) default mode nu in een generatieve modus is. De niet-generatieve modus wordt afgeschaft en zal in een toekomstige release worden verwijderd.
Verder is in Java 23 de Graal JIT compiler in Oracle JDK geïntegreerd. Oracle JDK-gebruikers krijgen Hiermee toegang tot in GraalVM EE ontwikkelde eigenschappen. Dit moet ontwikkelaars en beheerders meer mogelijkheden geven voor het optimaliseren en verbeteren van workload-prestaties.
Last, but not least is vanaf Java 23 het JEP voor String Templates niet meer in de programmeertaal aanwezig. Deze is verwijderd en wordt actief herbewerkt op basis van feedback uit de Java-community.
Lees ook: Java 22 beschikbaar: features voor verbeterde performance