Java 10: Belangrijkste kenmerken & releasemodel uitgelegd
Java 10 is een grote release in de Java-releasecadens en werd uitgegeven op 10 maart 2018. Met Java 10 heeft Oracle de releasecadens veranderd naar een nieuw model: een 6-maandelijkse releasecadens en een LTS-model (Long Term Support) voor Oracle Java SE-producten.
Vanaf Java 10 geeft Oracle elke 6 maanden een nieuwe Java-versie uit, waarin elk één of twee grote features zitten. Oracle gebruikt een "release train"-concept: elke train is 6 maanden geschet. Features die binnen die tijd klaar zijn, komen in de release; de rest schuift naar de volgende train.
Oracle JDK vs OpenJDK
De meeste Oracle JDK-binaries zijn proprietair en gelicenseerd door Oracle met beperkingen voor herdistributie. OpenJDK is community-vriendelijker. Vanaf Java 10 promoot Oracle OpenJDK als primaire JDK om community-gestuurde ontwikkeling te stimuleren. Oracle blijft eigen JDK's produceren, maar releast ze na 3 jaar als LTS-versies. OpenJDK-binaries komen elke 6 maanden uit.
OpenJDK is cloud- en container-vriendelijk omdat het vrij te distribueren is als onderdeel van een container. De overstap naar OpenJDK maakt Java aantrekkelijker voor cloud/container-ontwikkeling en -implementatie.
Java 9 en Java 10 zijn geen LTS-releases. Java 11 is een LTS-release.
Nieuwe features
De belangrijkste nieuwe features in Java 10:
JEP 286 – Local Variable Type Inference
JEP 322 – Time-Based Release Versioning
JEP 304 – Garbage-Collector Interface
JEP 307 – Parallel Full GC for G1
JEP 316 – Heap Allocation on Alternative Memory Devices
JEP 296 – Consolidate the JDK Forest into a Single Repository
JEP 310 – Application Class-Data Sharing
JEP 314 – Additional Unicode Language-Tag Extensions
JEP 319 – Root Certificates
JEP 317 – Experimental Java-Based JIT Compiler
JEP 312 – Thread-Local Handshakes
JEP 313 – Remove the Native-Header Generation Tool
Java 10 verbeterde 70+ API's met nieuwe methoden en opties en verwijderde verouderde API's en opties. Deze veranderingen behandelen we in de volgende hoofdstukken.
Java
- De C-programmeertaal: Een uitgebreid overzicht
- Java-operators beheersen: typen, syntax en praktische voorbeelden
- Java-commentaar: typen, gebruik en best practices
- Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
- Java Strings beheersen: aanmaken, methodes en best practices
- Java interfaces meesteren: concepten, implementatie en best practices
- Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
- Java Try-with-resources meesteren: automatische resource management uitgelegd
- Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
- Java Assertions: een praktische gids voor bugdetectie en codebetrouwbaarheid
- Java Programmeertaal: Evolutie, Versies en Toepassingen