Java SE: Aké funkcie prináša Java aktualizácia a jednotlivé verzie Java SE 11, 17 LTS, 19 LTS
V článku sa dozvieš základné informácie o vzniku Java SE a o funkciách jej najnovších verzií. Schopnosť jazyka Java zvyšovať výkon, stabilitu a bezpečnosť z neho už dlhodobo robí najpopulárnejší programovací jazyk na svete. Podľa správy IDC ho používa viac ako 10 miliónov vývojárov, čo predstavuje približne 33 % softvérových inžinierov na celom svete. Od jeho vzniku vyšlo už 21 oficiálne podporovaných verzií Javy SE. V článku sa pozrieme na to, aké funkcie prinášajú jednotlivé verzie Javy.

V článku sa dozvieš:
História Java – aké Java platformy poznáme a na čo slúžia
Java je programovací jazyk a platforma, ktorá bola vyvinutá v roku 1995 firmou Sun Microsystems, dcérskou spoločnosťou firmy Oracle. Tá poskytuje platformu na vývoj aplikačného softvéru a jeho nasadenie v multiplatformovom výpočtovom prostredí.
Za otca programovacieho jazyka Java je považovaný James Gosling, ktorý spolu s členmi tímu Java, nazývaného aj Green Team, začal pracovať na vývoji začiatkom 90. rokov. Cieľom tohto projektu bolo vyvinúť jazyk pre digitálne zariadenia, ako sú set-top boxy, televízory atď. V súčasnosti sa programovanie v Jave používa pri vývoji internetových aplikácií, aplikácií pre mobilné zariadenia, počítačových hier, e-business riešení a podobne.
Od svojho vzniku prešiel programovací jazyk Java mnohými vylepšeniami a rozšíreniami, ktoré zabezpečili nové programovacie možnosti a zlepšili prívetivosť používateľského rozhrania. Java verzie prechádzajú neustálym vývojom, no vo všeobecnosti môžeme zadefinovať Java výhody v štyroch platformách a to Java SE, Java EE, Java ME a Java FX, kde každá z nich prináša špecifické výhody v závislosti od ich použitia.
Platforma Java SE
Java Standard Edition alebo skrátene Java SE je základná platforma Java programovania. Môžeme na nej spúšťať softvér alebo ju použiť na vývoj desktopových a serverových aplikácií. Na používanie platformy Java SE sa využíva programovací jazyk Java, pričom táto platforma je súčasťou rodiny softvérových platforiem s rovnomenným názvom. Java SE poskytuje všetky knižnice dátových štruktúr a rozhrania API, ako sú java.lang, java.io, java.math, java.net, java.util atď.
Na čo slúžia knižnice dátových štruktúr
Knižnice dátových štruktúr obsahujú preddefinované triedy, ktoré poskytuje Java System. Existujú tisíce knižničných tried, pričom každá z nich obsahuje rôzne funkcie. Tieto triedy teda poskytujú efektívnu podporu programátorom pri vývoji ich programov. Tie zjednodušujú a zefektívňujú prácu.
Java Application Programming Interface (API)
Java pre začiatočníkov, alebo API Java Application Programming Interface predstavuje zoznam všetkých tried, ktoré sú súčasťou Java development kit (JDK), ktoré sú špecifické pre jazyk a program Java. Zahŕňa teda všetky Java balíky, triedy a rozhrania spolu s ich metódami, poľami a komentármi autorov. Tieto predpísané triedy Java programu poskytujú programátorovi obrovské množstvo funkcií, ktoré môže využiť na Java programovanie.
… pôvodný názov jazyka Java mal byť Oak (dub) podľa dubu, ktorý stál pred Goslingovou kanceláriou. Neskôr dostal názov Green a finálne sa premenoval na Java podľa názvu odrody kávy, ktorá sa pestuje na rovnomennom indonézskom ostrove.
Hlavné výhody Java SE platform
- Poskytuje možnosti využívania princípov objektovo orientovaného programovania a nadradených tried, ktoré sú používané aj na vytváranie sietí (tzv. networking), abstrakcie, vyššiu bezpečnosť, prístup k databázam, vývoj GUI (Graphical User Interface) a analýzu vo formáte napríklad XML.
- Obsahuje triedu Collectors, ktorá umožňuje akumulovať prvky do kolekcií a sumarizovať údaje podľa rôznych kritérií.
- Poskytuje triedu Base64 na šifrovanie a dešifrovanie.
- Disponuje rozhraniami API, ktoré umožňujú efektívnejšie výpočty a programovanie.
- Do platformy Java SE bola pridaná nová trieda java.net.URLPermission, ktorá predstavuje povolenie na prístup k zdroju definovanému z daného URL.
Okrem bežného programovacieho jazyka Java však existuje ešte jeden špecifický model Javy, ktorým je Java LTS.

Čo je Java LTS a ako sa líši od bežnej Javy
Java vývojári poctivo pracujú na nových vylepšených verziách Javy SE kvôli zdokonaľovaniu funkčnosti systému. Od jej vzniku vychádzali Java verzie nepravidelne, preto sa v roku 2018 spoločnosť Oracle rozhodla pre zmenu pravidelnosti vydávania nových verzií platformy Java SE. Namiesto pôvodného intervalu vydávania každé dva až tri roky (z ktorých sa často stávali až štyri) sa použil nový šesťmesačný model klasických verzií platformy Java SE a každé tri roky vyjde vydanie s dlhou podporou LTS (long time support). Prvá verzia Javy vydaná pod týmto modelom bola Java SE 11.
Výhodou verzií LTS je skutočnosť, že organizácie sa môžu spoľahnúť na to, že Java verzie budú k dispozícii najmenej osem rokov, čo vývojárom poskytuje dostatok času na upevnenie nástrojov a prechod na inú verziu Javy LTS o niekoľko rokov neskôr. Model LTS umožňuje poskytovateľom technológií zamerať sa na konkrétne verzie pri dlhodobej podpore ich produktov. Každá verzia dostane počas fungovania iba aktualizácie výkonu, stability a zabezpečenia, takže k závažným zmenám v jednotlivých verziách Javy by nemalo prichádzať.
Najnovšie verzie Java SE
Od vzniku prvej Java verzie JDK Beta v roku 1995 ubehli už takmer dve desaťročia. Za ten čas bolo vytvorených (zatiaľ) 21 Java verzií. Prvou LTS Java verziou s dlhodobou podporou bola verzia Java SE 7, ktorá vyšla v júli 2011. Ďalšia verzia – Java SE 8 – prišla na trh v marci 2014. Táto verzia obsahuje niektoré funkcie pôvodne navrhnuté pre Javu SE 7, no pridané boli až v Jave SE 8. Ide o funkcie ako:
- podpora výrazov Lambda na jazykovej úrovni,
- možnosť vkladať kód JavaScript do aplikácií,
- anotácia Java verzií,
- poskytnutie dátumového a časového rozhrania API,
- opakujúce sa anotácie,
- spustenie JavaFX aplikácií.
Ďalšími dostupnými verziami sú Java SE 11 LTS a Java SE 17 LTS, pričom ďalšia verzia – Java SE 21 LTS – sa očakáva v septembri 2023.
Verzia Java SE 11 LTS
Java 11 je po Jave 8 tretím vydaním LTS verzie Javy. Toto vydanie si môžeš stiahnuť a používať zadarmo, avšak iba na nekomerčný vývoj. Na vývoj komerčných aplikácií si už musíš kúpiť licenciu na oficiálnej stránke spoločnosti Oracle. Predplatitelia Javy SE budú dostávať aktualizácie JDK 11 minimálne do septembra 2026.
Verzia Java SE 11 LTS prináša niekoľko dôležitých funkcií pre vývojárov softvéru. Jednou z hlavných zmien je, že nemusíš najprv kompilovať zdrojový súbor Java pomocou nástroja javac. Súbor môžeš priamo spustiť príkazom Java a implicitne sa skompiluje. Táto funkcia patrí pod JEP 330.
Ďalšie dôležité funkcie vo verzii Java SE 11:
- Nové pomocné metódy v triede String, ako isBlank(), lines(), strip(), stripLeading(), stripTrailing() a repeat(int);
- Syntax lokálnej premennej pre parametre Lambda;
- JEP 309. Dynamické konštanty triedy. Rozšírenie podpory o novú formu konštantnej oblasti CONSTANT_Dynamic. Cieľom tohto JEP je znížiť náklady;
- JEP 321. HTTP klient. Nové API podporuje HTTP/1.1 aj HTTP/2 a je navrhnuté tak, aby zlepšilo celkový výkon odosielania požiadaviek klienta a prijímania odpovedí zo servera;
- JEP 328. Flight Recorder. JFR je profilovací nástroj používaný na zhromažďovanie diagnostických dát zo spustenej Java aplikácie;
- Zjednodušené čítanie a písanie reťazca String pomocou readString(), writeString().
Syntax lokálnej premennej pre parametre Lambda je jediným vydaním jazykovej funkcie v jazyku Java 11. V Java 10 bola zavedená inferencia typu miestnej premennej založená na odvodzovaní. Typ premennej by sme teda mohli odvodiť ako var list = new ArrayList<String>(); JEP 323 umožňuje deklarovať pomocou var formálne parametre implicitne typovaného výrazu lambda. Teraz môžeme definovať:
(var s1, var s2) -> s1 + s2

Java verzia SE 17 LTS
Dôležitou zmenou v rámci Oracle JDK 17 bolo zavedenie nových a jednoduchších licenčných podmienok, ktoré umožnia spoločnostiam používať Oracle JDK 17 bezplatne počas najmenej troch nasledujúcich rokov. Predplatitelia Java SE získajú prístup k podpore Oracle Java SE a ku komerčným funkciám, ako sú GraalVM Enterprise, Java Management Service a Advanced Management Console.
Java 17 LTS predstavuje zatiaľ posledné vydanie dlhodobej podpory pre platformu Java SE a obsahuje 14 nových funkcií, ktoré uľahčia a zefektívnia prácu vývojárov po celom svete. Medzi najzásadnejšie zmeny vo verzii LTS Java 17 považujeme:
- JEP 356: Vylepšené generátory pseudonáhodných čísel. Verzia poskytuje nové typy rozhraní a implementácie pre generátory pseudonáhodných čísel (PRNG) s cieľom eliminovať duplicitu kódu v existujúcich triedach PRNG.
- JEP 382: Nový kanál vykresľovania macOS. Interný kanál vykresľovania pre Java 2D pre macOS pomocou rozhrania Apple Metal API ako alternatívy k existujúcemu kanálu, ktorý používa zastarané rozhranie Apple OpenGL API.
- JEP 403: Silne zapuzdrené vnútorné časti JDK všetkých interných prvkov JDK, okrem kritických interných rozhraní API, ako je sun.misc.Unsafe. Už nebude možné uvoľniť silné zapuzdrenie vnútorných prvkov pomocou jediného príkazového riadka.
- JEP 411: Odstránenie Security Managera.
- JEP 415: Kontextovo špecifické deserializačné filtre. Táto zmena umožňuje aplikáciám konfigurovať kontextovo špecifické a dynamicky vybrané filtre deserializácie prostredníctvom továrne na filtre v rámci JVM, ktorá sa vyvolá na výber filtra pre každú jednotlivú operáciu deserializácie.
Najnovšia verzia Java SE 19
Toto vydanie je desiatym vydaním funkcií dodaným v rámci šesťmesačnej frekvencie vydávania. Táto úroveň predvídateľnosti umožňuje vývojárom jednoducho riadiť vydávanie inovácií, ale je potrebné upozorniť na to, že Oracle JDK 19 nie je vydanie s dlhou podporou (LTS).
Zmeny v najnovšej verzii Java SE 19 zahŕňajú rôzne vylepšenia, a to od zakomponovania významných nových funkcií cez malé vylepšenia až po rutinnú údržbu. Aktualizácie a vylepšenia Javy SE 19 sú nasledujúce:
-
- JEP 405. Záznamové vzory. Toto vylepšenie umožňuje používateľom vkladať vzory záznamov a typové vzory na vytvorenie výkonnej, deklaratívnej a komponovateľnej formy navigácie a spracovania dát;
- JEP 422. Linux/RISC-V Port vytvára pôdu na jednoduchšie implementácie Linux/RISC-V integráciou tohto portu do hlavného repozitára JDK;
- JEP 427. Zhoda vzorov pre prepínače umožňuje porovnávanie vzorov pre výrazy a príkazy prepínačov tým, že povoľuje testovanie výrazu voči množstvu vzorov;
- JEP 424. Rozhranie API pre cudzie funkcie a pamäť umožňuje programom Java jednoduchšiu spoluprácu s kódom a údajmi mimo runtimu Javy.
- JEP 426. Vector API zabezpečuje lepší výkon v porovnaní s ekvivalentnými skalárnymi výpočtami vyjadrením vektorových výpočtov, ktoré sa spoľahlivo kompilujú za behu do vektorových inštrukcií na podporovaných architektúrach CPU.
Čo je Java JDK LTS?
Java JDK LTS je skratka pre Java Development Kit Long Term Support. Je to vývojové prostredie pre tvorbu aplikácií v jazyku Java, ktoré ponúka dlhodobú podporu a aktualizácie. Java JDK LTS znamená, že daná verzia JDK bude podporovaná minimálne štyri roky od jej vydania. Podpora a pravidelná oprava chýb, zlepšenia bezpečnosti a výkonu, a kompatibility s novými platformami. Aktuálne sú dostupné tri verzie Java JDK LTS: JDK 8 LTS, Java JDK 11 LTS a JDK 17 LTS. JDK 19 non LTS (Java Development Kit 19 is not Long Term Support) je vydaná ako Standard Java release septembri 2022.
JDK 19 vs JDK 17
JDK 19 a JDK 17 sú dve verzie Java Development Kit, ktoré sa líšia v niektorých z hlavných rozdielov:
Java 19 non LTS je verzia Java 19 JDK, ktorej vydanie bolo realizované v septembri 2022, zatiaľ čo JDK 17 je predchádzajúca verzia, ktorá bola vydaná v septembri 2021.
JDK 19 non LTS má niektoré nové funkcie, ako napríklad pattern matching, virtual threads, sealed classes a records, ktoré nie sú dostupné v JDK 17. Java LTS 17 obsahuje niektoré funkcie, ktoré boli zavedené v predchádzajúcich feature releases, ako napríklad text blocks, switch expressions, var a modules.
… efektívnym vyvolaním cudzích funkcií v JEP 427 (t. j. kódu mimo Java Virtual Machine [JVM]) a bezpečným prístupom k cudzej pamäti (t. j. k pamäti nespravovanej JVM) umožňuje toto API vyvolať programom Java natívne knižnice a spracovávať natívne dáta cez čistý vývojový model Java 19. Výsledkom je zvýšená jednoduchosť používania, výkon, flexibilita a bezpečnosť.
Spoločnosť Oracle oznámila plány na skrátenie času medzi budúcimi vydaniami LTS Java z troch rokov na dva roky. Ďalšou verziou Javy SE LTS by teda mala byť Java 21 LTS, ktorá vyjde v septembri 2023. Nová Java prinesie ešte inovatívnejšie funkcie a Java programovanie bude znova o niečo dokonalejšie. Táto verzia by mala poskytovať podporu minimálne do roku 2031.
U nás v msg life Slovakia na programovanie v jazyku Java aktuálne používame verziu Java SE 11 (LTS), ktorá sa nám veľmi osvedčila. Čoskoro však prejdeme na Javu SE 17 (LTS) so 14 novými funkciami na zefektívnenie, zlepšenie a urýchlenie našej práce, pričom túto verziu Javy si môžeš vyskúšať aj ty.
Pozri si naše predchádzajúce články s tematikou Java programovania:
Či už si skúsený Java programátor senior, alebo zanietený Java programátor junior, v našom tíme sa pre teba vždy nájde miesto. Pridaj sa k nám, zlepši svoje znalosti Java programovania a podieľaj sa s nami na vývoji inovatívnych softvérových riešení pre finančných a poistných lídrov na trhu. Pozri si voľné pracovné miesta a pošli nám svoje CV.