Novinky v Java 9

Ohlásená nová generácia technológie Java vo verzii 9 pre platformu SE (Standard Edition) prináša zopár zaujímavosti. Medzi najzaujímavejšiu inováciu nepochybne patrí nový prístup k modularite, príkazový riadok Jshell, podpora HTTP/2 a aj podpora DTLS. Ale poďme nato po poriadku...

•    Project Jigsaw. Zrejme najviac očakávaná zmena v Java 9 je komplexne nový návrh modularity, ktorý je zodpovedný za organizáciu zdrojového kódu. Budeme môcť s výsledným kódom baliť len a výlučne potrebné moduly a nie ako doteraz, celú obrovskú štruktúru balíkov. Veľmi užitočné pre mobilný vývoj, ale aj v oblasti vývoja IoT.

•    JShell. Príkazový riadok pre spúšťanie Java kódu, bez potreby ich “zabalenia” do tried. Podobné ako interpreter BASH, Perl resp. Python. Môžeme požiť deklarácie, výrazy, príkazy a to všetko len v príkazovom riadku. JShell môže byť užitočný pre tých, ktorí sa zoznamujú s programovacím jazykom Java, alebo pri samotnej výučbe Javy.

•    HTTP/2 podpora. Definuje nový HTTP klientské API, ktoré implementuje HTTP/2 a WebSocket a nahradzuje pôvodné HttpURLConnection API. Nejedná sa o úplne novú implementáciu: metódy, stavové kódy a sémantika zostali pôvodné. Špecifikácia bola uvoľnená ešte v marci 2015.

•    DTLS (Datagram Transport Layer Security) implementácia. K už existujúcej podpore TLS (Transport Layer Security) pre bezpečnú a spoľahlivú komunikáciu cez transportnú vrstvu ako je TCP, teraz pribudne podpora bezpečnej komunikácie cez datagramovú transportnú vrstvu, ako je UDP. Pôvodné TLS nebolo možné používať pre datagramový transport, nakoľko TLS netoleruje napr. stratu datagramových paketov. Implementácia  DTLS v Java 9 môže byť veľkým prínosom pre aplikácie, ktoré používajú práve UDP pre prenos cez transportnú vrstvu.

•    Portovanie na Linux/AArch64. AArch64 je nová procesorová architektúra od ARM Holdings plc.

•    Podpora privátnych metód interface-u. Uvedením Lambda metód v JAVA 8, defaultné metódy boli použité v Interface-u na pridanie funkcionality k uvedeniu Lambdy. Ak dva defaultné metódy potrebujú zdieľať ten istý kód, privátna metóda im to umožní bez vystavovania implementácie  danej metódy cez Interface.

•    Zakázanie znaku _ (podtržítko) ako jednoznakový identifikátor. V Java 8, ak ste ho použili ako identifikátor, sme dostali upozornenie, že v Java 9 použitie znaku _ ako jednoznakového identifikátoru spôsobí chybové hlásenie.

•    Podpora TIFF obrázkového formátu. Rastúcou popularitou TIFF formátu a  nakoľko aj MAC OS X používa ako štandardný obrázkový formát TIFF, bolo stále viac dopytov na podporu tohto formátu priamo v Jave. Pôvodne TIFF bol podporovaný cez Java Advanced Imaging API. Java 9 dôjde k zlúčeniu tohto API priamo s J2SE.

….a samozrejme mnoho ďalších. Kompletný popis JEP nájdete na http://openjdk.java.net/projects/jdk9/. Pôvodne bola Java 9 ohlásená na september 2016, avšak termín uvedenia bol posunutý na približne marec 2017. Posunutie je spôsobené meškaním projektu Jigsaw. Prípadné zmeny môžete sledovať taktiež na stránke http://www.java9countdown.xyz/.

Aktuálne portfólio školení v tejto oblasti nájdete TU.


Ing. Tibor Kurina, Ph.D.
lektor GOPAS

tibor.jpg