Oracle heeft de beschikbaarheid aangekondigd van Java 20, de nieuwste versie van 's werelds nummer één programmeertaal en ontwikkelingsplatform. Java 20 (Oracle JDK 20) levert duizenden verbeteringen op het gebied van prestaties, stabiliteit en beveiliging, waaronder platformverbeteringen die ontwikkelaars zullen helpen hun productiviteit te verbeteren en innovatie en groei in hun organisaties te stimuleren. Oracle toont de nieuwste mogelijkheden in Java 20 tijdens de Java Developer Day die plaatsvindt op 21 maart 2023 tijdens het Oracle DevLive Level Up evenement, dat 20-23 maart plaatsvindt in Redwood Shores, CA en online.

De nieuwste Java Development Kit (JDK) biedt updates en verbeteringen met zeven JDK Enhancement Proposals (JEP's). De meeste updates zijn vervolgfuncties die de in eerdere releases geïntroduceerde functionaliteit verbeteren. JDK 20 levert taalverbeteringen van OpenJDK-project Amber (Record Patterns en Pattern Matching for Switch); verbeteringen van OpenJDK-project Panama om Java Virtual Machine (JVM) en native code met elkaar te verbinden (Foreign Function & Memory API en Vector API); en functies met betrekking tot Project Loom (Scoped Values, Virtual Threads en Structured Concurrency), die het proces van het schrijven, onderhouden en observeren van high-throughput, concurrent applicaties drastisch zullen stroomlijnen.

Oracle levert om de zes maanden nieuwe Java-functies via een voorspelbaar releaseschema. Deze cadans zorgt voor een gestage stroom van innovaties, terwijl de prestaties, stabiliteit en beveiliging van het platform voortdurend worden verbeterd, waardoor Java steeds meer ingang vindt bij organisaties en industrieën van elke omvang. De belangrijkste updates in Java 20 zijn: Taalupdates en -verbeteringen: JEP 432: Record Patterns (Second Preview): Verbetert de Java-taal doordat gebruikers recordpatronen en typepatronen kunnen nesten om een krachtige, declaratieve en samenstelbare vorm van gegevensnavigatie en -verwerking te creëren.

Dit helpt de productiviteit van ontwikkelaars te verhogen door hen in staat te stellen pattern matching uit te breiden om meer verfijnde en samengestelde gegevensquery's mogelijk te maken. JEP 433: Patroonmatching voor Switch (vierde voorbeeld): Door pattern matching uit te breiden tot Switch, kan een expressie worden getoetst aan een aantal patronen u elk met een specifieke actie u zodat complexe gegevensgerichte query's beknopt en veilig kunnen worden uitgedrukt. De uitbreiding van de expressiviteit en toepasbaarheid van switchuitdrukkingen en -verklaringen helpt de productiviteit van ontwikkelaars te verhogen.

Project Loom Preview/Incubator functies: JEP 429: Scoped Values (Incubator): Maakt het delen van onveranderlijke gegevens binnen en tussen threads mogelijk, die de voorkeur genieten boven thread-local variabelen, vooral bij het gebruik van grote aantallen virtuele threads. Dit verhoogt het gebruiksgemak, de begrijpelijkheid, de robuustheid en de prestaties. JEP 436: Virtuele threads (tweede voorbeeld): Stroomlijn het proces van het schrijven, onderhouden en observeren van high-throughput, concurrent applicaties aanzienlijk door lichtgewicht virtuele threads te introduceren in het Java Platform.

Door ontwikkelaars in staat te stellen gemakkelijk problemen op te lossen, te debuggen en gelijktijdige toepassingen te profileren met bestaande JDK-tools en -technieken, helpen virtuele threads de ontwikkeling van toepassingen te versnellen. JEP 437: Gestructureerde Concurrency (Tweede Incubator): Vereenvoudigt multithreaded programmeren door meerdere taken in verschillende threads als één werkeenheid te behandelen. Dit helpt ontwikkelingsteams bij het stroomlijnen van foutenbehandeling en annulering, het verbeteren van de betrouwbaarheid en het verbeteren van de waarneembaarheid.

Project Panama Preview functies: JEP 434: Buitenlandse functie en geheugen-API (tweede voorbeeld): Hiermee kunnen Java-programma's samenwerken met code en gegevens buiten de Java-runtime. Door buitenlandse functies (d.w.z. code buiten de Java Virtual Machine [JVM]) efficiënt aan te roepen en veilig toegang te krijgen tot vreemd geheugen (d.w.z. geheugen dat niet door de JVM wordt beheerd), stelt deze functie Java-programma's in staat native bibliotheken aan te roepen en native gegevens te verwerken zonder dat de Java Native Interface nodig is. Dit verhoogt het gebruiksgemak, de prestaties en de veiligheid.

JEP 438: Vector-API (vijfde incubator): Brengt vectorberekeningen tot uitdrukking die tijdens runtime betrouwbaar compileren naar vectorinstructies op ondersteunde CPU-architecturen. Dit verhoogt de prestaties in vergelijking met gelijkwaardige scalaire berekeningen. De Java 20 release is het resultaat van uitgebreide samenwerking tussen Oracle engineers en andere leden van de wereldwijde gemeenschap van Java-ontwikkelaars via OpenJDK en het Java Community Process (JCP).

Naast de nieuwe verbeteringen wordt Java 20 ondersteund door Java Management Service u een Oracle Cloud Infrastructure (OCI) native service u die een enkel venster biedt om organisaties te helpen Java runtimes en applicaties on-premises of op een cloud te beheren.