{"id":94334,"date":"2020-09-16T01:42:08","date_gmt":"2020-09-15T23:42:08","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-java-se-15"},"modified":"2020-09-16T01:42:08","modified_gmt":"2020-09-15T23:42:08","slug":"vypusk-java-se-15","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/news\/vypusk-java-se-15","title":{"rendered":"Uvo\u013enenie Java SE 15","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-September\/000291.html\">vydala<\/a><\/noindex> platformu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.oracle.com\/java\/technologies\/javase-downloads.html\">Java SE 15<\/a><\/noindex> (Java Platform, Standard Edition 15), ktorej etal\u00f3nna implement\u00e1cia vyu\u017e\u00edva otvoren\u00fd projekt OpenJDK. Java SE 15 zachov\u00e1va sp\u00e4tn\u00fa kompatibilitu s predch\u00e1dzaj\u00facimi verziami platformy Java, v\u0161etky predt\u00fdm nap\u00edsan\u00e9 Java projekty bud\u00fa bez zmien funk\u010dn\u00e9 pri spusten\u00ed na novej verzii. Hotov\u00e9 na in\u0161tal\u00e1ciu bal\u00edky Java SE 15 (JDK, JRE a Server JRE) <noindex><a rel=\"nofollow\" href=\"http:\/\/jdk.java.net\/15\">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\/15\/\">Java 15<\/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 15 patr\u00ed do kateg\u00f3rie vydan\u00ed so \u0161tandardnou podporou, aktualiz\u00e1cie pre ktor\u00e9 bud\u00fa vyd\u00e1van\u00e9 do nasleduj\u00faceho vydania. Pre dlhodob\u00fa podporu (LTS) by sa mala pou\u017e\u00edva\u0165 Java SE 11, aktualiz\u00e1cie pre ktor\u00fa 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 proces v\u00fdvoja, ktor\u00fd predpoklad\u00e1 krat\u0161\u00ed cyklus vzniku nov\u00fdch vydan\u00ed. Nov\u00e9 funk\u010dnosti s\u00fa teraz vyv\u00edjan\u00e9 v jednej neust\u00e1le aktualizovanej master vetve, do ktorej sa zah\u0155\u0148aj\u00fa u\u017e pripraven\u00e9 zmeny a od ktorej sa ka\u017ed\u00fdch \u0161es\u0165 mesiacov odde\u013euj\u00fa vetvy na stabiliz\u00e1ciu nov\u00fdch vydan\u00ed. <\/p>\n<p>Z <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/15\/\">novinky<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/jdk.java.net\/14\/release-notes#newfeatures\">Java 15<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.oracle.com\/java\/technologies\/javase\/15all-relnotes.html\">mo\u017en\u00e9<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/blogs.oracle.com\/javamagazine\/inside-java-15-fourteen-jeps-in-five-buckets\">ozna\u010di\u0165<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/339\">Integrovan\u00e1<\/a><\/noindex> podpora algoritmu na vytv\u00e1ranie digit\u00e1lneho podpisu EdDSA (Edwards-Curve Digital Signature Algorithm)  <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc8032\">RFC 8032<\/a><\/noindex>). Navrhnut\u00e1 implement\u00e1cia EdDSA nez\u00e1vis\u00ed od hardv\u00e9rov\u00fdch platforiem, je chr\u00e1nen\u00e1 pred \u00fatokmi prostredn\u00edctvom bo\u010dn\u00fdch kan\u00e1lov (zaru\u010den\u00fd kon\u0161tantn\u00fd \u010das v\u0161etk\u00fdch v\u00fdpo\u010dtov) a vo v\u00fdkonnosti prekon\u00e1va existuj\u00facu implement\u00e1ciu ECDSA nap\u00edsan\u00fa v jazyku C pri rovnakej \u00farovni ochrany. Napr\u00edklad EdDSA pri pou\u017eit\u00ed eliptickej krivky s 126-bitov\u00fdm k\u013e\u00fa\u010dom vykazuje v\u00fdkonnos\u0165 porovnate\u013en\u00fa s ECDSA s eliptickou krivkou secp256r1 a 128-bitov\u00fdm k\u013e\u00fa\u010dom.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/360\">Pridan\u00e1<\/a><\/noindex> experiment\u00e1lna podpora uzavret\u00fdch (&#171;sealed&#187;) tried a rozhran\u00ed, ktor\u00e9 nem\u00f4\u017eu by\u0165 pou\u017eit\u00e9 in\u00fdmi triedami a rozhraniami na dedenie, roz\u0161irovanie alebo prekonanie implement\u00e1cie. Uzavret\u00e9 triedy tie\u017e poskytuj\u00fa deklarat\u00edvnej\u0161\u00ed sp\u00f4sob obmedzenia pou\u017e\u00edvania nadtriedy, ako s\u00fa pr\u00edstupov\u00e9 modifik\u00e1tory, zalo\u017een\u00fd na explicitnom uveden\u00ed podtried povolen\u00fdch na roz\u0161irovanie.\n<p>   package com.example.geometry;<\/p>\n<p>   public sealed class Shape<br \/>\n        permits com.example.polar.Circle,<br \/>\n                com.example.quad.Rectangle,<br \/>\n                com.example.quad.simple.Square {&#8230;}<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/371\">Pridan\u00e1<\/a><\/noindex> podpora skryt\u00fdch tried, ktor\u00e9 nem\u00f4\u017eu by\u0165 priamo pou\u017eit\u00e9 bajtkodom in\u00fdch tried. K\u013e\u00fa\u010dov\u00fdm \u00fa\u010delom skryt\u00fdch tried je vyu\u017eitie v frameworkoch, ktor\u00e9 dynamicky generuj\u00fa triedy po\u010das behu a pou\u017e\u00edvaj\u00fa ich nepriamo, cez <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9E%D1%82%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)\">reflexia<\/a><\/noindex>. Tak\u00e9to triedy zvy\u010dajne maj\u00fa obmedzen\u00fd \u017eivotn\u00fd cyklus, preto ich udr\u017eiavanie na pr\u00edstup z staticky generovan\u00fdch tried nie je od\u00f4vodnen\u00e9 a vedie iba k zv\u00fd\u0161eniu spotreby pam\u00e4te. Skryt\u00e9 triedy tie\u017e umo\u017e\u0148uj\u00fa ob\u00eds\u0165 nestandardn\u00e9 API sun.misc.Unsafe::defineAnonymousClass, ktor\u00e9 je pl\u00e1novan\u00e9 na odstr\u00e1nenie v bud\u00facnosti.\n<li class=\"l\"> Stabilizovan\u00fd a pova\u017eovan\u00fd za pripraven\u00fd na \u0161irok\u00e9 pou\u017eitie je zbera\u010d odpadu ZGC (Z Garbage Collector). ZGC funguje v pas\u00edvnom re\u017eime, v r\u00e1mci mo\u017enost\u00ed minimalizuje oneskorenia sp\u00f4soben\u00e9 zberom odpadu (\u010das zastavenia pri pou\u017eit\u00ed ZGC nepresiahne 10 ms.) a m\u00f4\u017ee fungova\u0165 s mal\u00fdmi aj obrovsk\u00fdmi kopcami, ve\u013ekos\u0165ou od nieko\u013ek\u00fdch stoviek megabajtov po nieko\u013eko terabajtov.\n<li class=\"l\"> Stabilizovan\u00fd a pova\u017eovan\u00fd za pripraven\u00fd na \u0161irok\u00e9 pou\u017eitie<br \/>\n zbera\u010d odpadu <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/shenandoah\/\">Shenandoah<\/a><\/noindex>, pracuj\u00faci s minim\u00e1lnymi oneskoreniami (Low-Pause-Time Garbage Collector). Shenandoah bol vyvinut\u00fd spolo\u010dnos\u0165ou Red Hat a je zauj\u00edmav\u00fd pou\u017eit\u00edm algoritmu, ktor\u00fd zni\u017euje \u010das zastaven\u00ed po\u010das zberu odpadu t\u00fdm, \u017ee \u010distenie prebieha s\u00fabe\u017ene s vykon\u00e1van\u00edm Java aplik\u00e1ci\u00ed. Ve\u013ekos\u0165 sp\u00f4soben\u00fdch zbera\u010dom odpadu oneskoren\u00ed je predv\u00eddate\u013en\u00e1 a nez\u00e1vis\u00ed od ve\u013ekosti kopca, t.j. pre kopce o ve\u013ekosti 200 MB a 200 GB bud\u00fa oneskorenia identick\u00e9 (<noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.openjdk.java.net\/display\/shenandoah\/Main\">neprekra\u010duj\u00fa<\/a><\/noindex> 50 ms a zvy\u010dajne sa zmestia do 10 ms);<\/p>\n<li class=\"l\"> Stabilizovan\u00e1 a zaveden\u00e1 do jazyka podpora <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/378\">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 \u00fanikov\u00fdch znakov a zachovanie p\u00f4vodn\u00e9ho form\u00e1tovania textu v bloku. Obe\u017eenie bloku sa vykon\u00e1va troma dvojit\u00fdmi \u00favodzovkami.\n<p>Napr\u00edklad namiesto k\u00f3du<\/p>\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 15 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 15&#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\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/373\">Prepracovan\u00fd<\/a><\/noindex> API Legacy DatagramSocket. Star\u00e9 implement\u00e1cie java.net.DatagramSocket a java.net.MulticastSocket boli nahraden\u00e9 modernou implement\u00e1ciou, ktor\u00e1 je jednoduch\u0161ia na ladenie a \u00fadr\u017ebu a je tie\u017e kompatibiln\u00e1 s virtu\u00e1lnymi vl\u00e1knami, ktor\u00e9 s\u00fa vyv\u00edjan\u00e9 v r\u00e1mci projektu <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/projects\/loom\">Loom<\/a><\/noindex>. V pr\u00edpade mo\u017en\u00e9ho poru\u0161enia kompatibility so s\u00fa\u010dasn\u00fdm k\u00f3dom star\u00e1 implement\u00e1cia nebola odstr\u00e1nen\u00e1 a m\u00f4\u017ee by\u0165 aktivovan\u00e1 pomocou mo\u017enosti jdk.net.usePlainDatagramSocketImpl.\n<li class=\"l\"> Navrhnut\u00e1 druh\u00e1 experiment\u00e1lna implement\u00e1cia <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/375\">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\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/384\">Navrhnut\u00e9<\/a><\/noindex> druh\u00e1 experiment\u00e1lna implement\u00e1cia 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\/383\">Navrhnut\u00e9<\/a><\/noindex> druh\u00fd predbe\u017en\u00fd variant API Foreign-Memory Access, ktor\u00fd umo\u017e\u0148uje Java aplik\u00e1ci\u00e1m bezpe\u010dne a efekt\u00edvne pristupova\u0165 k oblastiam pam\u00e4te mimo Java hromady, manipulovan\u00edm s nov\u00fdmi abstrakciami MemorySegment, MemoryAddress a MemoryLayout.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/374\">Vypnut\u00e9<\/a><\/noindex> a bola vyhl\u00e1sen\u00e1 za zastaran\u00fa technika optimaliz\u00e1cie Biased Locking, pou\u017e\u00edvan\u00e1 v HotSpot JVM na zn\u00ed\u017eenie re\u017eijn\u00fdch n\u00e1kladov sp\u00f4soben\u00fdch z\u00e1mkami. T\u00e1to technika stratila aktu\u00e1lnos\u0165 v syst\u00e9moch s atom\u00e1rnymi in\u0161trukciami, ktor\u00e9 poskytuj\u00fa modern\u00e9 CPU, a je pr\u00edli\u0161 n\u00e1ro\u010dn\u00e1 na \u00fadr\u017ebu kv\u00f4li svojej zlo\u017eitosti.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/385\">Ozn\u00e1men\u00e9<\/a><\/noindex> zastaran\u00fd mechanizmus <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/14\/docs\/specs\/rmi\/activation.html\">RMI Activation<\/a><\/noindex>, ktor\u00fd bude odstr\u00e1nen\u00fd v jednej z nasleduj\u00facich verzi\u00ed. Je pozoruhodn\u00e9, \u017ee RMI Activation je zastaran\u00fd, bol preveden\u00fd do kateg\u00f3rie mo\u017enosti u\u017e od Java 8 a takmer sa nepou\u017e\u00edva v modernej praxi.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/372\">Odstr\u00e1nen\u00e9<\/a><\/noindex>  JavaScript engine <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=35427\">Nashorn<\/a><\/noindex>, ktor\u00fd bol vyhl\u00e1sen\u00fd za zastaran\u00fd v Java SE 11.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/381\">Boli odstr\u00e1nen\u00e9<\/a><\/noindex> porty pre OS Solaris a procesory SPARC (Solaris\/SPARC, Solaris\/x64 a Linux\/SPARC). Odstr\u00e1nenie uveden\u00fdch portov umo\u017en\u00ed komunite ur\u00fdchli\u0165 v\u00fdvoj nov\u00fdch mo\u017enost\u00ed OpenJDK, bez straty \u010dasu na \u00fadr\u017ebu \u0161pecifick\u00fdch funkci\u00ed pre Solaris a SPARC.\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=53717\">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 15 (Java Platform, Standard Edition 15), \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 15 \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-94334","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-15\" \/>\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 15 | 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-15\" \/>\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-09-15T23:42:08+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-15T23:42:08+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 15 | ProHoster","description":"Po \u0161iestich mesiacoch v\u00fdvoja spolo\u010dnos\u0165 Oracle uviedla platformu","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/news\/vypusk-java-se-15","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 15 | 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-15","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-09-15T23:42:08+00:00","article:modified_time":"2020-09-15T23:42:08+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"94334","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 11:29:28","updated":"2022-10-03 17:44:46","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\/94334","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=94334"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/94334\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=94334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=94334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=94334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}