{"id":74554,"date":"2020-03-18T20:41:55","date_gmt":"2020-03-18T17:41:55","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-java-se-14"},"modified":"2020-03-18T20:41:55","modified_gmt":"2020-03-18T17:41:55","slug":"vypusk-java-se-14","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/news\/vypusk-java-se-14","title":{"rendered":"Vydanie Java SE 14","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Po \u0161iestich mesiacoch v\u00fdvoja firma Oracle <noindex><a rel=\"nofollow\" href=\"http:\/\/mail.openjdk.java.net\/pipermail\/announce\/2020-March\/000282.htm\">vydala<\/a><\/noindex> platformu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.oracle.com\/java\/technologies\/javase-downloads.html\">Java SE 14<\/a><\/noindex> (Java Platform, Standard Edition 14), ktorej referen\u010dn\u00e1 implement\u00e1cia je zalo\u017een\u00e1 na otvorenom projekte OpenJDK. Java SE 14 zachov\u00e1va sp\u00e4tn\u00fa kompatibilitu s predch\u00e1dzaj\u00facimi verziami platformy Java, v\u0161etky predt\u00fdm nap\u00edsan\u00e9 projekty Java bud\u00fa fungova\u0165 bez zmien na novej verzii. Pripraven\u00e9 na in\u0161tal\u00e1ciu zostavy Java SE 14 (JDK, JRE a Server JRE) <noindex><a rel=\"nofollow\" href=\"http:\/\/jdk.java.net\/14\">s\u00fa pripraven\u00e9<\/a><\/noindex> pre Linux (x86_64), Windows a macOS. Referen\u010dn\u00e1 implement\u00e1cia vyvinut\u00e1 v r\u00e1mci projektu OpenJDK <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/14\/\">Java 14<\/a><\/noindex> je \u00faplne otvoren\u00e1 pod licenciou GPLv2 s v\u00fdnimkami GNU ClassPath, ktor\u00e9 umo\u017e\u0148uj\u00fa dynamick\u00e9 sp\u00e1janie s komer\u010dn\u00fdmi produktmi. <\/p>\n<p>Java SE 14 patr\u00ed do kateg\u00f3rie vydan\u00ed s be\u017enou dobou podpory, aktualiz\u00e1cie pre ktor\u00e9 bud\u00fa vyd\u00e1van\u00e9 do \u010fal\u0161ieho vydania. Pre dlhodob\u00fa podporu (LTS) sa odpor\u00fa\u010da pou\u017ei\u0165 Java SE 11, aktualiz\u00e1cie pre ktor\u00e9 bud\u00fa vyd\u00e1van\u00e9 do roku 2026. Predch\u00e1dzaj\u00faca LTS vetva Java 8 bude podporovan\u00e1 do decembra 2020. \u010eal\u0161ie LTS vydanie je napl\u00e1novan\u00e9 na september 2021. Pripom\u00edname, \u017ee od vydania Java 10 pre\u0161iel projekt na nov\u00fd v\u00fdvojov\u00fd proces, ktor\u00fd predpoklad\u00e1 krat\u0161\u00ed cyklus uvo\u013e\u0148ovania nov\u00fdch verzi\u00ed. Nov\u00e9 funkcie sa teraz vyv\u00edjaj\u00fa v jednej neust\u00e1le aktualizovanej master vetve, do ktorej s\u00fa zahrnut\u00e9 hotov\u00e9 zmeny a od ktorej s\u00fa ka\u017ed\u00fdch \u0161es\u0165 mesiacov odvetven\u00e9 stabiliza\u010dn\u00e9 vetvy pre nov\u00e9 vydania. <\/p>\n<p>Z <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/14\/\">novinky<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/jdk.java.net\/14\/release-notes#newfeatures\">Java 14<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.oracle.com\/java\/technologies\/javase\/14u-relnotes.html\">mo\u017en\u00e9<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/blogs.oracle.com\/javamagazine\/java-14-arrives-with-a-host-of-new-features\">ozna\u010di\u0165<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Bola pridan\u00e1 experiment\u00e1lna podpora <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/305\">porovn\u00e1vanie s modelom<\/a><\/noindex> v oper\u00e1tore &#171;instanceof&#187;, ktor\u00fd umo\u017e\u0148uje okam\u017eit\u00e9 ur\u010denie lok\u00e1lnej premennej na pr\u00edstup k overenej hodnote. Napr\u00edklad, mo\u017eno ihne\u010f nap\u00edsa\u0165 &#171;if (obj instanceof String s &#038;&#038; s.length() &gt; 5) {.. s.contains(..) ..}&#187; bez explicitn\u00e9ho ur\u010denia &#171;String s = (String) obj&#187;.\n<p>Bolo:<\/p>\n<p>   if (obj instanceof Group) {<br \/>\n     Group group = (Group) obj;<br \/>\n     var entries = group.getEntries();<br \/>\n   }<\/p>\n<p>Teraz je mo\u017en\u00e9 sa ob\u00eds\u0165 bez ur\u010denia &#171;Group group = (Group) obj&#187;:<\/p>\n<p>   if (obj instanceof Group group) {<br \/>\n     var entries = group.getEntries();<br \/>\n   }<\/p>\n<li class=\"l\"> Pridan\u00e1 experiment\u00e1lna podpora nov\u00e9ho k\u013e\u00fa\u010dov\u00e9ho slova &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/359\">record<\/a><\/noindex>&#171;, poskytuj\u00faceho kompaktn\u00fa formu pre definovanie tried, ktor\u00e1 umo\u017e\u0148uje ob\u00eds\u0165 explicitn\u00e9 ur\u010denie r\u00f4znych n\u00edzko\u00farov\u0148ov\u00fdch met\u00f3d, ako s\u00fa equals(), hashCode() a toString(), v pr\u00edpadoch, ke\u010f s\u00fa d\u00e1ta ulo\u017een\u00e9 len v poliach, ktor\u00fdch spr\u00e1vanie sa nemen\u00ed. Ke\u010f s\u00fa v triede pou\u017e\u00edvan\u00e9 typov\u00e9 implement\u00e1cie met\u00f3d equals(), hashCode() a toString(), je mo\u017en\u00e9 sa zaob\u00eds\u0165 bez ich explicitn\u00e9ho ur\u010denia:\n<p>   public record BankTransaction(LocalDate date,<br \/>\n                              double amount,<br \/>\n                              String description) {}<\/p>\n<p>Tento inzer\u00e1t povede k automatick\u00e9mu p\u0159id\u00e1n\u00ed implementac\u00ed metod equals(), hashCode() a toString() spolu s konstruktorem a metodami, kter\u00e9 \u0159\u00edd\u00ed zm\u011bnu dat (getter).<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/361\">Standardizovan\u00e1<\/a><\/noindex> a predvolen\u00e1 podpora novej formy v\u00fdrazu &#171;switch&#187;, ktor\u00e1 nevy\u017eaduje ur\u010denie oper\u00e1tora &#171;break&#187;, \u010do umo\u017e\u0148uje sp\u00e1ja\u0165 opakuj\u00face sa zna\u010dky a umo\u017e\u0148uje pou\u017eitie nielen vo forme oper\u00e1tora, ale aj ako v\u00fdrazu.\n<p>   var log = switch (event) {<br \/>\n       case PLAY -&gt; &#171;Pou\u017e\u00edvate\u013e aktivoval tla\u010didlo pre prehr\u00e1vanie&#187;;<br \/>\n       case STOP, PAUSE -&gt; &#171;Pou\u017e\u00edvate\u013e potrebuje prest\u00e1vku&#187;;<br \/>\n       default -&gt; {<br \/>\n           String message = event.toString();<br \/>\n           LocalDateTime now = LocalDateTime.now();<br \/>\n           yield &#171;Nezn\u00e1ma udalos\u0165 &#187; + message +<br \/>\n              &#187; prihl\u00e1sen\u00fd &#187; + teraz;<br \/>\n       }<br \/>\n   };<\/p>\n<li class=\"l\"> Roz\u0161\u00ed\u0159ena experiment\u00e1ln\u00ed podpora <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/368\">textov\u00fdch blok\u016f<\/a><\/noindex> &#8212; nov\u00e1 forma re\u0165azcov\u00fdch liter\u00e1lov, ktor\u00e1 umo\u017e\u0148uje zahrn\u00fa\u0165 do zdrojov\u00e9ho k\u00f3du viacriadkov\u00e9 textov\u00e9 d\u00e1ta bez pou\u017eitia v nich escape znakov a zachov\u00e1va p\u00f4vodn\u00e9 form\u00e1tovanie textu v bloku. Oble\u010denie bloku sa uskuto\u010d\u0148uje tromi dvojit\u00fdmi \u00favodzovkami. V Jave 14 bola implementovan\u00e1 podpora escape sekvenci\u00ed &#171;&#092;s&#187; pre definovanie jedn\u00e9ho medzery a &#171;&#092;&#187; na zl\u00fa\u010denie s nasleduj\u00facim riadkom (ignorovanie prechodu na nov\u00fd riadok, ke\u010f je potrebn\u00e9 zobrazi\u0165 ve\u013emi dlh\u00fd riadok). Napr\u00edklad, namiesto k\u00f3du\n<p>   String html = &#171;&lt;HTML&gt;&#187; +<br \/>\n   &#171;&#092;n&#092;t&#187; + &#171;&lt;BODY&gt;&#187; +<br \/>\n   &#171;&#092;n&#092;t&#092;t&#187; + &#171;&lt;H1&gt;&#092;&#187;Java 14 je tu!&#092;&#187;&lt;\\\/H1&gt;&#187; +<br \/>\n   &#171;&#092;n&#092;t&#187; + &#171;&lt;\\\/BODY&gt;&#187; +<br \/>\n   &#171;&#092;n&#187; + &#171;&lt;\\\/HTML&gt;&#187;;<\/p>\n<p>m\u016f\u017eete uv\u00e9st:<\/p>\n<p>   String html = &#171;&#187;&#187;<br \/>\n   &lt;HTML&gt;<br \/>\n     &lt;BODY&gt;<br \/>\n       &lt;H1&gt;&#187;Java 14&#092;<br \/>\n je tu!&#187;&lt;\\\/H1&gt;<br \/>\n     &lt;\\\/BODY&gt;<br \/>\n   &lt;\\\/HTML&gt;&#187;&#187;&#187;;<\/p>\n<li class=\"l\"> Roz\u0161\u00ed\u0159ena informativnost diagnostiky p\u0159i vzniku v\u00fdjimek <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/358\">NullPointerException<\/a><\/noindex>. Ak predt\u00fdm spr\u00e1va o chybe iba odkazovala na \u010d\u00edslo riadka, teraz sa podrobne uv\u00e1dza, ktor\u00fd z met\u00f3d vyvolal v\u00fdnimku. Roz\u0161\u00edren\u00e1 diagnostika sa zatia\u013e aktivuje len pri spusten\u00ed s flagom &#171;-XX:+ShowCodeDetailsInExceptionMessages&#187;. Napr\u00edklad pri zad\u00e1van\u00ed tohto flagu sa v\u00fdnimka v riadku\n<p>   var name = user.getLocation().getCity().getName();<\/p>\n<p> vy\u00fast\u00ed ve zpr\u00e1vu:<\/p>\n<p>   V\u00fdnimka v vl\u00e1kne \u201emain\u201c java.lang.NullPointerException: Nie je mo\u017en\u00e9 vyvola\u0165 \u201eLocation.getCity()\u201c<br \/>\n   preto\u017ee n\u00e1vratov\u00e1 hodnota \u201eUser.getLocation()\u201c je null<br \/>\n   at NullPointerExample.main(NullPointerExample.java:5):5)<\/p>\n<p>co\u017e umo\u017e\u0148uje pochopit, \u017ee metoda Location.getCity() nebyla vol\u00e1na, a User.getLocation() vr\u00e1til hodnotu null.<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/343\">Implementovan\u00e9<\/a><\/noindex> predbe\u017en\u00e1 verzia n\u00e1stroja jpackage, ktor\u00fd umo\u017e\u0148uje vytv\u00e1ra\u0165 bal\u00ed\u010dky pre samostatn\u00e9 (self-contained) Java aplik\u00e1cie. N\u00e1stroj je zalo\u017een\u00fd na javapackager z JavaFX a umo\u017e\u0148uje vytv\u00e1ra\u0165 bal\u00ed\u010dky vo form\u00e1toch typick\u00fdch pre r\u00f4zne platformy (msi a exe pre Windows, pkg a dmg pre macOS, deb a rpm pre Linux). Bal\u00ed\u010dky obsahuj\u00fa v\u0161etky potrebn\u00e9 z\u00e1vislosti.\n<li class=\"l\"> Zbera\u010d odpadu G1 <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/345\">bol pridan\u00fd<\/a><\/noindex> nov\u00fd mechanizmus distrib\u00facie pam\u00e4te, ktor\u00fd zoh\u013ead\u0148uje \u0161pecifik\u00e1 pr\u00e1ce na ve\u013ek\u00fdch syst\u00e9moch s architekt\u00farou <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Non-Uniform_Memory_Access\">NUMA<\/a><\/noindex>. Nov\u00fd rozde\u013eova\u010d pam\u00e4te sa aktivuje pomocou pr\u00edkazu \u201e+XX:+UseNUMA\u201c a m\u00f4\u017ee v\u00fdrazne zv\u00fd\u0161i\u0165 v\u00fdkon na NUMA syst\u00e9moch.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/349\">Pridan\u00e9<\/a><\/noindex> API na sledovanie udalost\u00ed JFR (JDK Flight Recorder) v re\u00e1lnom \u010dase, napr\u00edklad na organiz\u00e1ciu nepretr\u017eit\u00e9ho monitorovania.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/352\">Pridan\u00e9<\/a><\/noindex> modul jdk.nio.mapmode, ktor\u00fd pon\u00faka nov\u00e9 re\u017eimy (READ_ONLY_SYNC, WRITE_ONLY_SYNC) na vytv\u00e1ranie mapovan\u00fdch bajtov\u00fdch bufferov (MappedByteBuffer), odkazuj\u00facich na nevolatiln\u00fa pam\u00e4\u0165 (NVM).\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/370\">Implementovan\u00e9<\/a><\/noindex> predbe\u017en\u00e1 verzia API Foreign-Memory Access, ktor\u00e1 umo\u017e\u0148uje Java aplik\u00e1ci\u00e1m bezpe\u010dne a efekt\u00edvne pristupova\u0165 k oblastiam pam\u00e4te mimo Java hromadu, manipuluj\u00fac s nov\u00fdmi abstrakciami MemorySegment, MemoryAddress a MemoryLayout.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/362\">Vyhl\u00e1sen\u00e9<\/a><\/noindex> zastaral\u00e9 porty pre OS Solaris a procesory SPARC (Solaris\/SPARC, Solaris\/x64 a Linux\/SPARC) s \u00famyslom odstr\u00e1ni\u0165 tieto porty v bud\u00facnosti. Prevedenie uveden\u00fdch portov do stavu zastarania umo\u017en\u00ed komunite ur\u00fdchli\u0165 v\u00fdvoj nov\u00fdch funkci\u00ed OpenJDK, ani\u017e by str\u00e1cala \u010das na \u00fadr\u017ebu vlastnost\u00ed \u0161pecifick\u00fdch pre Solaris a SPARC.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/363\">Odstr\u00e1nen\u00e9<\/a><\/noindex> zbera\u010d odpadu CMS (Concurrent Mark Sweep), ktor\u00fd bol pred dvoma rokmi ozna\u010den\u00fd ako zastaran\u00fd a zostal bez podpory (nahradili ho d\u00e1vno zbera\u010de odpadu G1). Navy\u0161e, <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/366\">vyhl\u00e1sen\u00e9<\/a><\/noindex> je zastaran\u00e9 pou\u017e\u00edva\u0165 kombin\u00e1ciu algoritmov na spracovanie odpadu ParallelScavenge a SerialOld (spustenie s vo\u013ebami \u201e-XX:+UseParallelGC -XX:-UseParallelOldGC\u201c).\n<li class=\"l\"> Bola zabezpe\u010den\u00e1 experiment\u00e1lna podpora zbera\u010da odpadu ZGC (Z Garbage Collector) na platform\u00e1ch macOS a Windows (predt\u00fdm bol podporovan\u00fd len v Linuxe). ZGC pracuje v pas\u00edvnom re\u017eime, ktor\u00fd do maxim\u00e1lnej miery minimalizuje oneskorenia sp\u00f4soben\u00e9 zberom odpadu (\u010das zastavenia pri pou\u017e\u00edvan\u00ed ZGC nepresahuje 10 ms) a m\u00f4\u017ee fungova\u0165 s mal\u00fdmi aj obrovsk\u00fdmi hromadami, s ve\u013ekos\u0165ou od nieko\u013ek\u00fdch stoviek megabajtov po nieko\u013eko terabajtov.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/367\">Boli odstr\u00e1nen\u00e9<\/a><\/noindex> n\u00e1stroje a API na kompresiu JAR s\u00faborov pomocou algoritmu Pack200.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Zdroj: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52559\">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 14 (Java Platform, Standard Edition 14), \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 14 \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-74554","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - 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\" \/>\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\/sk\/blog\/news\/vypusk-java-se-14\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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 14 | 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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/news\/vypusk-java-se-14\" \/>\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=\"2020-03-18T17:41:55+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-18T17:41:55+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\udd47Vydanie Java SE 14 | ProHoster","description":"Po \u0161iestich mesiacoch v\u00fdvoja spolo\u010dnos\u0165 Oracle uviedla platformu","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/news\/vypusk-java-se-14","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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 14 | 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","og:url":"https:\/\/prohoster.info\/sk\/blog\/news\/vypusk-java-se-14","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":"2020-03-18T17:41:55+00:00","article:modified_time":"2020-03-18T17:41:55+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"74554","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-02-28 18:12:24","updated":"2022-10-01 23:29:02","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/74554","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=74554"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/74554\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=74554"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=74554"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=74554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}