{"id":99453,"date":"2021-03-17T04:22:35","date_gmt":"2021-03-17T02:22:35","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-java-se-16"},"modified":"2021-03-17T04:22:35","modified_gmt":"2021-03-17T02:22:35","slug":"vypusk-java-se-16","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-java-se-16","title":{"rendered":"Vyd\u00e1n\u00ed Java SE 16","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Po \u0161esti m\u011bs\u00edc\u00edch v\u00fdvoje spole\u010dnost Oracle vydala platformu Java SE 16 (Java Platform, Standard Edition 16), jej\u00ed\u017e referen\u010dn\u00ed implementac\u00ed je otev\u0159en\u00fd projekt OpenJDK. V Java SE 16 byla zachov\u00e1na zp\u011btn\u00e1 kompatibilita s p\u0159edchoz\u00edmi verzemi platformy Java, v\u0161echny d\u0159\u00edve napsan\u00e9 Java projekty budou bez zm\u011bn fungovat pod novou verz\u00ed. P\u0159ipraven\u00e9 instala\u010dn\u00ed bal\u00ed\u010dky Java SE 16 (JDK, JRE a Server JRE) jsou dostupn\u00e9 pro Linux (x86_64, AArch64), Windows a macOS. Referen\u010dn\u00ed implementace Java 16 vyvinut\u00e1 v r\u00e1mci projektu OpenJDK je zcela otev\u0159ena pod licenc\u00ed GPLv2 s v\u00fdjimkami GNU ClassPath, kter\u00e9 povoluj\u00ed dynamick\u00e9 propojen\u00ed s komer\u010dn\u00edmi produkty.     <\/p>\n<p>Java SE 16 je za\u0159azena do kategorie verz\u00ed s obvyklou dobou podpory, aktualizace pro ni budou vyd\u00e1v\u00e1ny do dal\u0161\u00edho vyd\u00e1n\u00ed. Pro dlouhodobou podporu (LTS) by se m\u011bla pou\u017e\u00edvat Java SE 11, jej\u00ed\u017e aktualizace budou vyd\u00e1v\u00e1ny do roku 2026. Dal\u0161\u00ed LTS vyd\u00e1n\u00ed je pl\u00e1nov\u00e1no na z\u00e1\u0159\u00ed 2021. P\u0159ipom\u00edn\u00e1me, \u017ee od vyd\u00e1n\u00ed Java 10 projekt p\u0159e\u0161el na nov\u00fd proces v\u00fdvoje, kter\u00fd zahrnuje krat\u0161\u00ed cyklus tvorby nov\u00fdch verz\u00ed. Nov\u00e9 funkce se nyn\u00ed vyv\u00edjej\u00ed v jedn\u00e9 neust\u00e1le aktualizovan\u00e9 master v\u011btvi, do kter\u00e9 jsou za\u0159azeny ji\u017e hotov\u00e9 zm\u011bny a od kter\u00e9 se ka\u017ed\u00fdch \u0161est m\u011bs\u00edc\u016f odd\u011bluj\u00ed v\u011btve pro stabilizaci nov\u00fdch vyd\u00e1n\u00ed.       <\/p>\n<p>P\u0159i p\u0159\u00edprav\u011b nov\u00e9ho vyd\u00e1n\u00ed byla v\u00fdvoj p\u0159enesen ze syst\u00e9mu spr\u00e1vy verz\u00ed Mercurial na Git a platformu pro spolupr\u00e1ci GitHub. O\u010dek\u00e1v\u00e1 se, \u017ee migrace zv\u00fd\u0161\u00ed v\u00fdkon operac\u00ed s repozit\u00e1\u0159em, zlep\u0161\u00ed efektivitu ukl\u00e1d\u00e1n\u00ed, poskytne p\u0159\u00edstup ke zm\u011bn\u00e1m v cel\u00e9 historii projektu, zlep\u0161\u00ed podporu reviz\u00ed k\u00f3du a umo\u017en\u00ed vyu\u017e\u00edv\u00e1n\u00ed API pro automatizaci pracovn\u00edch proces\u016f. Krom\u011b toho pou\u017e\u00edv\u00e1n\u00ed Git a GitHub \u010din\u00ed projekt atraktivn\u011bj\u0161\u00edm pro nov\u00e1\u010dky a v\u00fdvoj\u00e1\u0159e zvykl\u00e9 na Git.    <\/p>\n<p>Mezi novinkami Java 16 lze zm\u00ednit:  <\/p>\n<ul>\n<li class=\"l\"> Byl p\u0159id\u00e1n experiment\u00e1ln\u00ed modul jdk.incubator.vector s implementac\u00ed API Vector, kter\u00fd poskytuje funkce pro vektorov\u00e9 v\u00fdpo\u010dty prov\u00e1d\u011bn\u00e9 pomoc\u00ed vektorov\u00fdch instrukc\u00ed procesor\u016f x86_64 a AArch64 a umo\u017e\u0148uje aplikovat operace na v\u00edce hodnot sou\u010dasn\u011b (SIMD). Na rozd\u00edl od funkc\u00ed, kter\u00e9 poskytuje JIT kompil\u00e1tor HotSpot pro automatickou vektorization skalarov\u00fdch operac\u00ed, nov\u00e9 API umo\u017e\u0148uje explicitn\u00ed \u0159\u00edzen\u00ed vektorization pro paraleln\u00ed zpracov\u00e1n\u00ed dat.\n<li class=\"l\"> V k\u00f3du JDK a VM HotSpot, napsan\u00e9m v C++, je povoleno pou\u017e\u00edvat funkce uveden\u00e9 ve specifikaci C++14. D\u0159\u00edve bylo povoleno pou\u017e\u00edvat standardy C++98\/03.\n<li class=\"l\"> Do sb\u011bra\u010de odpadu ZGC (Z Garbage Collector), kter\u00fd pracuje v pasivn\u00edm re\u017eimu a sna\u017e\u00ed se co nejv\u00edce minimalizovat zpo\u017ed\u011bn\u00ed zp\u016fsoben\u00e9 sb\u011brem odpadu, byla p\u0159id\u00e1na mo\u017enost paraleln\u00edho zpracov\u00e1n\u00ed z\u00e1sobn\u00edk\u016f vl\u00e1ken bez p\u0159eru\u0161en\u00ed vykon\u00e1v\u00e1n\u00ed vl\u00e1ken aplikace. V ZGC nyn\u00ed z\u016fstaly pouze operace, kter\u00e9 vy\u017eaduj\u00ed pozastaven\u00ed \u010dinnosti, je\u017e maj\u00ed trval\u00e1 zpo\u017ed\u011bn\u00ed, obvykle nep\u0159esahuj\u00edc\u00ed n\u011bkolik set mikrosekund.\n<li class=\"l\"> Do t\u0159\u00edd SocketChannel, ServerSocketChannel a java.nio.channels byla p\u0159id\u00e1na podpora Unix-socket\u016f (AF_UNIX).\n<li class=\"l\"> Byl realizov\u00e1n port pro linuxovou distribuci Alpine se standardn\u00ed C knihovnou musl, kter\u00e1 je obl\u00edben\u00e1 v prost\u0159ed\u00edch pro kontejnery, mikroslu\u017eby, cloudov\u00e9 a vestav\u011bn\u00e9 syst\u00e9my. Navr\u017een\u00fd port v t\u011bchto prost\u0159ed\u00edch umo\u017e\u0148uje spou\u0161t\u011bt aplikace v Jav\u011b jako b\u011b\u017en\u00e9 aplikace. Krom\u011b toho je mo\u017en\u00e9 pomoc\u00ed jlink odstranit v\u0161echny nepou\u017e\u00edvan\u00e9 moduly a vytvo\u0159it minim\u00e1ln\u00ed prost\u0159ed\u00ed nezbytn\u00e9 pro vykon\u00e1v\u00e1n\u00ed aplikace, co\u017e umo\u017e\u0148uje vytv\u00e1\u0159et specifick\u00e9 pro konkr\u00e9tn\u00ed aplikace kompaktn\u00ed obrazy.\n<li class=\"l\"> Byl implementov\u00e1n mechanismus Elastic Metaspace, kter\u00fd optimalizuje operace alokace a uvoln\u011bn\u00ed pam\u011bti pou\u017e\u00edvan\u00e9 metadaty t\u0159\u00edd (metaspace) v JVM HotSpot. Pou\u017eit\u00ed Elastic Metaspace sni\u017euje fragmentaci pam\u011bti, sni\u017euje re\u017eijn\u00ed n\u00e1klady p\u0159i na\u010d\u00edt\u00e1n\u00ed t\u0159\u00edd a pozitivn\u011b ovliv\u0148uje v\u00fdkon dlouho b\u011b\u017e\u00edc\u00edch serverov\u00fdch aplikac\u00ed d\u00edky rychlej\u0161\u00edmu uvol\u0148ov\u00e1n\u00ed pam\u011bti opera\u010dn\u00edmu syst\u00e9mu, kterou zab\u00edraj\u00ed nepou\u017e\u00edvan\u00e1 metadata t\u0159\u00edd. Pro volbu re\u017eimu uvoln\u011bn\u00ed pam\u011bti po vylo\u017een\u00ed t\u0159\u00edd je navr\u017eena volba &#171;-XX:MetaspaceReclaimPolicy=(balanced|aggressive|none)&#187;.\n<li class=\"l\"> Byl p\u0159id\u00e1n port JDK pro syst\u00e9my Windows b\u011b\u017e\u00edc\u00ed na hardwaru s procesory architektury AArch64.\n<li class=\"l\"> Byla navr\u017eena t\u0159et\u00ed p\u0159edb\u011b\u017en\u00e1 verze API Foreign-Memory Access, kter\u00e1 umo\u017e\u0148uje aplikac\u00edm Java bezpe\u010dn\u011b a efektivn\u011b p\u0159istupovat k oblastem pam\u011bti mimo Java hromadu pomoc\u00ed nov\u00fdch abstrakc\u00ed MemorySegment, MemoryAddress a MemoryLayout.\n<li class=\"l\"> Bylo implementov\u00e1no experiment\u00e1ln\u00ed API Foreign Linker, kter\u00e9 poskytuje p\u0159\u00edstup z Java k nativn\u00edmu k\u00f3du. Spolu s API Foreign-Memory v\u00fdrazn\u011b usnad\u0148uje vytv\u00e1\u0159en\u00ed obal\u016f kolem b\u011b\u017en\u00fdch sd\u00edlen\u00fdch knihoven.\n<li class=\"l\"> Byl p\u0159id\u00e1n n\u00e1stroj jpackage, kter\u00fd umo\u017e\u0148uje vytv\u00e1\u0159et bal\u00ed\u010dky pro samostatn\u00e9 Java aplikace. N\u00e1stroj je zalo\u017een na javapackageru z JavaFX a umo\u017e\u0148uje vytv\u00e1\u0159en\u00ed bal\u00ed\u010dk\u016f ve form\u00e1tech nativn\u00edch pro r\u016fzn\u00e9 platformy (msi a exe pro Windows, pkg a dmg pro macOS, deb a rpm pro Linux). Bal\u00ed\u010dky obsahuj\u00ed v\u0161echny pot\u0159ebn\u00e9 z\u00e1vislosti.\n<li class=\"l\"> Pevn\u00e1 enkapsulace v\u0161ech vnit\u0159n\u00edch prvk\u016f JDK je nyn\u00ed ve v\u00fdchoz\u00edm nastaven\u00ed povolena, s v\u00fdjimkou kritick\u00fdch API, jako je sun.misc.Unsafe. Hodnota volby &#171;&#8212;illegal-access&#187; je nyn\u00ed ve v\u00fdchoz\u00edm nastaven\u00ed nastavena na &#171;deny&#187; m\u00edsto &#171;permit&#187;, co\u017e povede k blokov\u00e1n\u00ed pokus\u016f o p\u0159\u00edstup z k\u00f3du k v\u011bt\u0161in\u011b vnit\u0159n\u00edch t\u0159\u00edd, metod a pol\u00ed. Pro obch\u00e1zen\u00ed tohoto omezen\u00ed je nutn\u00e9 pou\u017e\u00edt volbu &#171;&#8212;illegal-access=permit&#187;.\n<li class=\"l\"> Byla stabilizov\u00e1na implementace vzorov\u00e9ho porovn\u00e1n\u00ed v oper\u00e1toru &#171;instanceof&#187;, kter\u00e1 umo\u017e\u0148uje okam\u017eit\u011b definovat lok\u00e1ln\u00ed prom\u011bnnou pro p\u0159\u00edstup k ov\u011b\u0159en\u00e9 hodnot\u011b. Nap\u0159\u00edklad je mo\u017en\u00e9 okam\u017eit\u011b ps\u00e1t &#171;if (obj instanceof String s &#038;&#038; s.length() &gt; 5) {.. s.contains(..) ..}&#187; bez explicitn\u00edho definov\u00e1n\u00ed &#171;String s = (String) obj&#187;. Bylo: if (obj instanceof Group) { Group group = (Group) obj; var entries = group.getEntries(); } Nyn\u00ed lze obej\u00edt bez definov\u00e1n\u00ed &#171;Group group = (Group) obj&#187;: if (obj instanceof Group group) { var entries = group.getEntries(); }\n<li class=\"l\"> Byla stabilizov\u00e1na implementace kl\u00ed\u010dov\u00e9ho slova &#171;record&#187;, kter\u00e9 poskytuje kompaktn\u00ed formu pro definici t\u0159\u00edd, umo\u017e\u0148uj\u00edc\u00ed obej\u00edt se bez explicitn\u00edho ur\u010dov\u00e1n\u00ed r\u016fzn\u00fdch n\u00edzko\u00farov\u0148ov\u00fdch metod, jako jsou equals(), hashCode() a toString(), v p\u0159\u00edpadech, kdy jsou data uchov\u00e1v\u00e1na pouze ve v\u011bt\u00e1ch, jejich\u017e chov\u00e1n\u00ed se nem\u011bn\u00ed. Kdy\u017e se v t\u0159\u00edd\u011b pou\u017e\u00edvaj\u00ed typov\u00e9 implementace metod equals(), hashCode() a toString(), lze se obej\u00edt bez jejich explicitn\u00edho stanoven\u00ed: public record BankTransaction(LocalDate date, double amount, String description) {}\n<p>Toto prohl\u00e1\u0161en\u00ed povede k automatick\u00e9mu p\u0159id\u00e1n\u00ed implementac\u00ed metod equals(), hashCode() a toString() spolu s konstruktorem a metodami, kter\u00e9 kontroluj\u00ed zm\u011bnu dat (getter).      <\/p>\n<li class=\"l\"> Byl navr\u017een druh\u00fd p\u0159edb\u011b\u017en\u00fd n\u00e1vrh zape\u010det\u011bn\u00fdch (&#171;sealed&#187;) t\u0159\u00edd a rozhran\u00ed, kter\u00e9 nemohou b\u00fdt pou\u017e\u00edv\u00e1ny jin\u00fdmi t\u0159\u00eddami a rozhran\u00edmi k d\u011bd\u011bn\u00ed, roz\u0161i\u0159ov\u00e1n\u00ed nebo p\u0159episov\u00e1n\u00ed implementace. Zape\u010det\u011bn\u00e9 t\u0159\u00eddy tak\u00e9 poskytuj\u00ed deklarativn\u011bj\u0161\u00ed zp\u016fsob omezen\u00ed pou\u017e\u00edv\u00e1n\u00ed nadt\u0159\u00eddy ne\u017e modifik\u00e1tory p\u0159\u00edstupu, zalo\u017een\u00fd na explicitn\u00edm v\u00fd\u010dtu podt\u0159\u00edd, kter\u00e9 jsou povoleny pro roz\u0161i\u0159ov\u00e1n\u00ed.         package com.example.geometry;       public sealed class Shape          permits com.example.polar.Circle,                  com.example.quad.Rectangle,                  com.example.quad.simple.Square {&#8230;}        <\/ul>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=54769\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0448\u0435\u0441\u0442\u0438 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 Java SE 16 (Java Platform, Standard Edition 16), \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 OpenJDK. \u0412 Java SE 16 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 \u043f\u0440\u043e\u0448\u043b\u044b\u043c\u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u043c\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Java, \u0432\u0441\u0435 \u0440\u0430\u043d\u0435\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 Java-\u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438. \u0413\u043e\u0442\u043e\u0432\u044b\u0435 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-99453","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0448\u0435\u0441\u0442\u0438 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 Java SE 16 (Java Platform, Standard Edition 16), \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 OpenJDK.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-java-se-16\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a Java SE 16 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0448\u0435\u0441\u0442\u0438 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 Java SE 16 (Java Platform, Standard Edition 16), \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 OpenJDK.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-java-se-16\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2021-03-17T02:22:35+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-03-17T02:22:35+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Vyd\u00e1n\u00ed Java SE 16 | ProHoster","description":"Po \u0161esti m\u011bs\u00edc\u00edch v\u00fdvoje spole\u010dnost Oracle vydala platformu Java SE 16 (Java Platform, Standard Edition 16), jej\u00ed\u017e etal\u00f3novou implementac\u00ed je otev\u0159en\u00fd projekt OpenJDK.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-java-se-16","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a Java SE 16 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0448\u0435\u0441\u0442\u0438 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 Java SE 16 (Java Platform, Standard Edition 16), \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 OpenJDK.","og:url":"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-java-se-16","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2021-03-17T02:22:35+00:00","article:modified_time":"2021-03-17T02:22:35+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"99453","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-17 02:50:53","updated":"2022-09-27 17:21:53","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/99453","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=99453"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/99453\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=99453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=99453"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=99453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}