Witold Kepinski - 20 maart 2025

Oracle brengt Java 24 uit

Oracle heeft de beschikbaarheid aangekondigd van Java 24 , de nieuwste versie van 's werelds nummer één programmeertaal en ontwikkelplatform. Java 24 ( Oracle JDK 24 ) levert duizenden verbeteringen om ontwikkelaars te helpen hun productiviteit te maximaliseren en innovatie te stimuleren. Bovendien helpen verbeteringen aan de prestaties, stabiliteit en beveiliging van het platform organisaties hun bedrijfsgroei te versnellen. Ontdek meer over de nieuwste Java 24-release op de JavaOne 2025- conferentie in Redwood Shores, CA op 18-20 maart 2025.

Oracle brengt Java 24 uit image

"Nu Java later dit jaar zijn 30e verjaardag nadert, blijft het zijn toolset uitbreiden om te voldoen aan de veranderende behoeften van ontwikkelaars, inclusief mogelijkheden die de ontwikkeling van AI-gestuurde applicaties ondersteunen", aldus Arnal Dayaratna, research vice president, software development, IDC. "Het brede scala aan mogelijkheden in de nieuwe release zal de productiviteit van ontwikkelaars helpen verhogen, waardoor ze sneller en efficiënter applicaties met veel functies aan hun organisaties en klanten kunnen leveren. De Java 24-release onderstreept dat Java ongeëvenaard is voor de ontwikkeling van bedrijfskritische, bedrijfskritische applicaties op schaal."

"In de afgelopen 30 jaar heeft Java ontwikkelaars een uitgebreid platform geboden om applicaties te bouwen en te implementeren die een breed scala aan use cases aanpakken", aldus Georges Saab, senior vice president, Oracle Java Platform en voorzitter van de OpenJDK governance board. "Met meer dan 20 nieuwe functies die elk element van Java bestrijken, waaronder nieuwe AI en post-quantum crypto-mogelijkheden, biedt de Java 24-release ontwikkelaars de tools die ze nodig hebben om innovatieve, AI-geïnfuseerde applicaties te bouwen. Als beheerders van Java zijn we verheugd om samen te werken met de wereldwijde Java-community om een ​​gestage stroom van nieuwe functies te blijven leveren via ons voorspelbare, zesmaandelijkse ritme."

Taalfuncties

  • JEP 488 : Primitieve typen in patronen, instanceof en switch (tweede preview): helpt ontwikkelaars de productiviteit van Java-programmering te verhogen door de taal uniformer en expressiever te maken. Deze functie helpt ontwikkelaars patroonmatching te verbeteren door beperkingen met betrekking tot primitieve typen te verwijderen die ontwikkelaars tegenkomen bij het gebruik van patroonmatching, instanceof en switch. Het staat ook primitieve typepatronen toe in alle patrooncontexten en breidt instanceof en switch uit om met alle primitieve typen te werken. Ontwikkelaars van toepassingen die AI-inferencing integreren, zullen vooral profiteren van de ondersteuning van primitieve typen.
  • JEP 492 : Flexibele constructorlichamen (derde preview): helpt ontwikkelaars de betrouwbaarheid van code te verbeteren via de introductie van twee afzonderlijke proloog- en epiloogfasen in een constructorlichaam. Dit stelt ontwikkelaars in staat om logica die ze momenteel moeten verwerken, op een natuurlijkere manier te plaatsen in statische hulpmethoden, tussenliggende hulpconstructoren of constructorargumenten. Bovendien behoudt het de bestaande beveiliging dat code in een subklasseconstructor niet kan interfereren met superklasse-instantiëring, wat resulteert in een betrouwbaardere klasse wanneer methoden worden overschreven.
  • JEP 494 : Module-importdeclaraties (tweede preview): helpt ontwikkelaars hun productiviteit te verbeteren door ze in staat te stellen snel en eenvoudig alle pakketten te importeren die door een module worden geëxporteerd, zonder dat de importerende code zich in een module zelf hoeft te bevinden. Dit vereenvoudigt het hergebruik van modulaire bibliotheken voor alle ontwikkelaars en helpt beginners gemakkelijker bibliotheken van derden en fundamentele Java-klassen te gebruiken zonder te hoeven leren waar ze zich in een pakkethiërarchie bevinden. Deze functie is ook gunstig voor ontwikkelaars die bedrijfslogica snel willen integreren met native AI-inferentie, bibliotheek of serviceaanroepen.
  • JEP 495 : Eenvoudige bronbestanden en instantie-hoofdmethoden (vierde preview): helpt studenten hun eerste programma's te schrijven zonder dat ze taalfuncties hoeven te begrijpen die zijn ontworpen voor grote programma's door een soepele opstap naar Java-programmering te bieden. Als gevolg hiervan kunnen docenten en instructeurs concepten geleidelijk introduceren en kunnen studenten gestroomlijnde declaraties schrijven voor programma's met één klasse en hun programma's naadloos uitbreiden met geavanceerdere functies naarmate hun vaardigheden toenemen. Bovendien kunnen ervaren Java-ontwikkelaars kleine programma's beknopt en efficiënt schrijven zonder dat ze hulpmiddelen hoeven te gebruiken die zijn ontworpen voor grotere projecten.

Bibliotheken

  • JEP 485 : Stream Gatherers: helpt ontwikkelaars efficiënter te worden in het lezen, schrijven en onderhouden van Java-code door de Stream API uit te breiden ter ondersteuning van aangepaste tussenliggende bewerkingen. Hierdoor kunnen stream-pipelines gegevens transformeren op manieren die niet eenvoudig te realiseren zijn met bestaande ingebouwde tussenliggende bewerkingen.
  • JEP 484 : Class-File API: helpt ontwikkelaars hun productiviteit te verbeteren door een standaard-API te bieden voor het parseren, genereren en transformeren van Java-klassenbestanden en het bijhouden van de klassebestandsindeling die is gedefinieerd door de Java Virtual Machine-specificatie.
  • JEP 487 : Scoped Values ​​(vierde preview): helpt ontwikkelaars het gebruiksgemak, de begrijpelijkheid, de prestaties en de robuustheid van hun projecten te verbeteren door het delen van onveranderlijke gegevens binnen en tussen threads mogelijk te maken.
  • JEP 489 : Vector API (negende incubator): helpt ontwikkelaars de productiviteit te verbeteren door een API te introduceren om vectorberekeningen uit te drukken die betrouwbaar worden gecompileerd tijdens runtime naar vectorinstructies op ondersteunde CPU-architecturen. Als resultaat kunnen ontwikkelaars prestaties bereiken die superieur zijn aan equivalente scalaire berekeningen, die vaak worden gebruikt in AI-inferentie- en compute-scenario's.
  • JEP 499 : Structured Concurrency (vierde preview): helpt ontwikkelaars de onderhoudbaarheid, betrouwbaarheid en waarneembaarheid van multithreaded code te verbeteren door gelijktijdig programmeren te vereenvoudigen via een nieuwe API voor gestructureerde gelijktijdigheid. Door groepen gerelateerde taken die in verschillende threads worden uitgevoerd als één werkeenheid te behandelen, kan gestructureerde gelijktijdigheid helpen om veelvoorkomende risico's die voortvloeien uit annulering en afsluiting, zoals threadlekken en annuleringsvertragingen, te verminderen.

Beveiligingsbibliotheken

  • JEP 478 : Key Derivation Function API (Preview): Helpt ontwikkelaars zich voor te bereiden op opkomende quantum computing-omgevingen door cryptografische beveiliging te bieden voor data in transit. Dit verbetert de vertrouwelijkheid en communicatie-integriteit.
  • JEP 496 : Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism: Helpt de beveiliging van Java-applicaties te verbeteren door een implementatie van het quantum-resistant Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM) te bieden. Deze functie is een belangrijke stap richting post-quantum readiness en de uiteindelijke levering van post-quantum crypto (PQC)-ondersteuning voor het Java-platform, aangezien key encapsulation-mechanismen worden gebruikt om symmetrische sleutels te beveiligen via onveilige communicatiekanalen met behulp van public key cryptografie.
  • JEP 497 : Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm: helpt de beveiliging van Java-applicaties te verbeteren door een implementatie van het quantum-resistant Module-Lattice-Based Digital Signature Algorithm (ML-DSA) te bieden. Net als bij JEP 496 is deze functie een belangrijke stap richting post-quantum readiness en de uiteindelijke levering van PQC-ondersteuning voor het Java-platform, aangezien digitale handtekeningen worden gebruikt om ongeautoriseerde wijzigingen in gegevens te detecteren en de identiteit van ondertekenaars te verifiëren. ML-DSA is ontworpen om te beveiligen tegen toekomstige quantum computing-aanvallen en is gestandaardiseerd door het United States National Institute of Standards and Technology (NIST) in FIPS 204.

Hulpmiddelen

  • JEP 493 : Run-Time Images koppelen zonder JMOD's: Helpt ontwikkelaars efficiënter te worden door de jlink-tool in staat te stellen aangepaste run-time images te maken zonder de JMOD-bestanden van de JDK te gebruiken, wat de grootte van de JDK met ongeveer 25 procent kan verkleinen. Hierdoor kunnen ontwikkelaars een run-time image koppelen vanuit modules, ongeacht of die modules zelfstandige JMOD-bestanden, modulaire JAR-bestanden of onderdeel van een eerder gekoppelde run-time image zijn. Deze functie moet worden ingeschakeld wanneer de JDK wordt gebouwd; deze wordt standaard niet ingeschakeld en sommige JDK-leveranciers kunnen ervoor kiezen deze niet in te schakelen.

Prestatie- en runtime-updates

  • JEP 450 : Compact Object Headers (Experimenteel): Helpt ontwikkelaars hun productiviteit te verhogen door de grootte van objectheaders in de HotSpot JVM te verkleinen van 96 tot 128 bits tot 64 bits op 64-bits architecturen. Dit helpt de heapgrootte te verkleinen, de implementatiedichtheid te verbeteren en de datalokaliteit te vergroten.
  • JEP 475 : Late Barrier Extension voor G1: Helpt ontwikkelaars de efficiëntie te verhogen door de uitbreiding van de barrières van de G1-garbage collector te verplaatsen van vroeg in de compilatiepijplijn van de C2 JIT naar later, wat de overhead kan verminderen als deze optreedt na platformonafhankelijke optimalisaties en registertoewijzing. Door de implementatie van de barrières van de G1-garbage collector te vereenvoudigen, helpt deze functie de efficiëntie, begrijpelijkheid, veerkracht en kwaliteit van door C2 gegenereerde code te verhogen.
  • JEP 483 : Ahead-of-Time Class Loading & Linking: Helpt ontwikkelaars de productiviteit te verhogen en de opstarttijd te verbeteren door klassen van een applicatie direct beschikbaar te maken in een geladen en gekoppelde staat wanneer de HotSpot Java Virtual Machine start. Deze functie vereist geen gebruik van de jlink- of jpackage-tools en vereist geen wijziging in de manier waarop applicaties worden gestart vanaf de opdrachtregel of enige wijziging in de code van applicaties, bibliotheken of frameworks. Als gevolg hiervan helpt het een basis te leggen voor voortdurende verbeteringen in opstart- en opwarmtijd.
  • JEP 490 : ZGC: Verwijder de niet-generatieve modus: helpt ontwikkelaars de onderhoudskosten voor de ondersteuning van twee verschillende modi te verlagen door de niet-generatieve modus van de Z Garbage Collector (ZGC) te verwijderen.
  • JEP 491 : Virtuele threads synchroniseren zonder vast te pinnen: helpt ontwikkelaars de productiviteit te verhogen door de schaalbaarheid van Java-code en bibliotheken die gesynchroniseerde methoden en statements gebruiken, uit te breiden. Door virtuele threads in staat te stellen hun onderliggende platformthreads vrij te geven, geeft deze functie ontwikkelaars toegang tot meer virtuele threads om de workloads van hun applicaties te beheren.

Broncode

  • JEP 404 : Generational Shenandoah (experimenteel): helpt ontwikkelaars hun productiviteit te verhogen door de Shenandoah-garbage collector uit te breiden met experimentele generationele verzamelingsmogelijkheden die de duurzame doorvoer, de veerkracht bij belastingpieken en het geheugengebruik verbeteren.
  • JEP 479 : Verwijder de Windows 32-bits x86-poort: helpt ontwikkelaars hun efficiëntie te verhogen door de broncode te verwijderen en ondersteuning te bouwen voor de Windows 32-bits x86-poort, wat de bouw- en testinfrastructuur van de JDK vereenvoudigt.
  • JEP 501 : Deprecate the 32-bit x86 Port for Removal: Helpt ontwikkelaars hun productiviteit te verhogen door de 32-bit x86-poort te deprecaten met de intentie om deze in een toekomstige release te verwijderen. Dit helpt ontwikkelaars toegang te krijgen tot nieuwe functies die platformspecifieke ondersteuning vereisen zonder dat ze 32-bit x86 fallbacks hoeven te implementeren.

Bovendien onderstreept Oracle, door moderne, veilige functies te introduceren en onveilige functies geleidelijk af te schaffen en te verwijderen, haar toewijding aan het behoud van de integriteit van Java en het afstemmen op best practices voor softwareontwikkeling. Oracle heeft drie functies aangewezen voor verwijdering in een toekomstige Java-release: JEP 472 : Bereid u voor op het beperken van het gebruik van JNI; JEP 486 : Schakel de Security Manager permanent uit; JEP 498 : Waarschuw bij gebruik van geheugentoegangsmethoden in sun.misc.Unsafe.

De functies in de Java 24-release zijn het resultaat van voortdurende samenwerking tussen Oracle en andere leden van de wereldwijde Java-ontwikkelaarscommunity via OpenJDK en het Java Community Process (JCP). Lees voor meer informatie over de functies in Java 24 de Java 24 technische blogpost .

Ondersteuning van de wereldwijde Java-community met innovatie in de cloud

Java levert meer innovatie, prestaties, efficiëntie en kostenbesparingen wanneer het wordt geïmplementeerd op Oracle Cloud Infrastructure (OCI), een van de eerste hyperscale clouds die Java 24 ondersteunt. Door Oracle Java SE, Oracle GraalVM en het Java SE Subscription Enterprise Performance Pack zonder extra kosten op OCI te leveren, helpt Java 24 ontwikkelaars bij het maken en implementeren van applicaties die sneller, beter en met geoptimaliseerde kosten-prestatieverhouding werken.

Het Oracle Java Universal SE Subscription biedt klanten de beste ondersteuning in zijn klasse. Het omvat het Java SE Subscription Enterprise Performance Pack, triage-ondersteuning voor het volledige Java-portfolio, recht op Oracle GraalVM, toegang tot de geavanceerde functies van de Java Management Service en de flexibiliteit om te upgraden in het tempo van de bedrijven van klanten. Dit helpt IT-organisaties om complexiteit te beheren, beveiligingsrisico's te beperken en kosten te beheersen.

Voor meer informatie over Java en het wereldwijde ecosysteem kunt u terecht op:

  • Dev.java : de officiële portal voor het leren van Java
  • Inside.java : nieuws en meningen van de leden van het Java-team bij Oracle
  • Java YouTube : Het officiële Java YouTube-kanaal voor Java-leervideo's
Trend Micro World Tour 2025 Okta 18/03/2025 t/m 01/04/2025 BW
Trend Micro World Tour 2025

Wil jij dagelijkse updates?

Schrijf je dan in voor onze nieuwsbrief!