{"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\/ro\/blog\/news\/vypusk-java-se-14","title":{"rendered":"Lansarea Java SE 14","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Dup\u0103 \u0219ase luni de dezvoltare, compania Oracle <noindex><a rel=\"nofollow\" href=\"http:\/\/mail.openjdk.java.net\/pipermail\/announce\/2020-March\/000282.htm\">a lansat<\/a><\/noindex> platforma <noindex><a rel=\"nofollow\" href=\"https:\/\/www.oracle.com\/java\/technologies\/javase-downloads.html\">Java SE 14<\/a><\/noindex> (Java Platform, Standard Edition 14), a c\u0103rei implementare de referin\u021b\u0103 este proiectul deschis OpenJDK. Java SE 14 p\u0103streaz\u0103 compatibilitatea \u00eenapoi cu versiunile anterioare ale platformei Java, toate proiectele Java scrise anterior vor func\u021biona f\u0103r\u0103 modific\u0103ri sub gestionarea noii versiuni. Versiunile gata de instalare ale Java SE 14 (JDK, JRE \u0219i Server JRE) <noindex><a rel=\"nofollow\" href=\"http:\/\/jdk.java.net\/14\">sunt preg\u0103tite<\/a><\/noindex> pentru Linux (x86_64), Windows \u0219i macOS. Implementarea de referin\u021b\u0103 dezvoltat\u0103 \u00een cadrul proiectului OpenJDK <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/14\/\">Java 14<\/a><\/noindex> este complet deschis\u0103 sub licen\u021ba GPLv2 cu excep\u021bii GNU ClassPath, care permit legarea dinamic\u0103 cu produse comerciale. <\/p>\n<p>Java SE 14 este clasificat ca un release cu suport obi\u0219nuit, actualiz\u0103rile pentru care sunt planificate p\u00e2n\u0103 la urm\u0103toarea lansare. Pentru un branch cu suport pe termen lung (LTS) ar trebui folosit Java SE 11, actualiz\u0103rile pentru care vor fi lansate p\u00e2n\u0103 \u00een 2026. Anteriora branch LTS Java 8 va fi sus\u021binut\u0103 p\u00e2n\u0103 \u00een decembrie 2020. Urm\u0103toarea lansare LTS este planificat\u0103 pentru septembrie 2021. Reamintim c\u0103 \u00eencep\u00e2nd cu lansarea Java 10, proiectul a trecut la un nou proces de dezvoltare, care implic\u0103 un ciclu mai scurt de formare a noilor lans\u0103ri. Noile func\u021bionalit\u0103\u021bi sunt acum dezvoltate \u00eentr-un branch principal constant actualizat, \u00een care sunt incluse modific\u0103rile deja finalizate \u0219i din care, o dat\u0103 la \u0219ase luni, se ramific\u0103 branch-urile pentru stabilizarea noilor lans\u0103ri. <\/p>\n<p>Din <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/14\/\">inova\u021bii<\/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\">poate<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/blogs.oracle.com\/javamagazine\/java-14-arrives-with-a-host-of-new-features\">remarc<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Suport experimental ad\u0103ugat <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/305\">a\u0219ocierea cu un model<\/a><\/noindex> \u00een operatorul \"instanceof\", care permite definirea imediat\u0103 a unei variabile locale pentru a accesa valoarea verificat\u0103. De exemplu, se poate scrie direct \"if (obj instanceof String s &amp;&amp; s.length() &gt; 5) {.. s.contains(..) ..}\" f\u0103r\u0103 a defini explicit \"String s = (String) obj\".\n<p>A fost:<\/p>\n<p>   if (obj instanceof Group) {<br \/>\n     Group group = (Group) obj;<br \/>\n     var entries = group.getEntries();<br \/>\n   }<\/p>\n<p>Acum nu mai este necesar s\u0103 definim \"Group group = (Group) obj\":<\/p>\n<p>   if (obj instanceof Group group) {<br \/>\n     var entries = group.getEntries();<br \/>\n   }<\/p>\n<li class=\"l\"> A fost ad\u0103ugat\u0103 suport experimental pentru noul cuv\u00e2nt cheie &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/359\">record<\/a><\/noindex>\", care ofer\u0103 o form\u0103 compact\u0103 pentru definirea claselor, permi\u021b\u00e2nd omiterea defini\u021biei explicite a diferitelor metode de baz\u0103, cum ar fi equals(), hashCode() \u0219i toString(), \u00een cazurile \u00een care datele sunt p\u0103strate doar \u00een c\u00e2mpuri, comportamentul acestora r\u0103m\u00e2n\u00e2nd neschimbat. C\u00e2nd se utilizeaz\u0103 implement\u0103rile tipice ale metodelor equals(), hashCode() \u0219i toString() \u00een clas\u0103, se poate renun\u021ba la defini\u021bia lor explicit\u0103:\n<p>   public record BankTransaction(LocalDate date,<br \/>\n                              double amount,<br \/>\n                              String description) {}<\/p>\n<p>Aceast\u0103 declara\u021bie va duce la ad\u0103ugarea automat\u0103 a implement\u0103rilor metodelor equals(), hashCode() \u0219i toString() \u00een plus fa\u021b\u0103 de constructor \u0219i metodele care controleaz\u0103 modificarea datelor (getter).<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/361\">Standardizat<\/a><\/noindex> \u0219i a fost activat \u00een mod implicit suportul pentru noua form\u0103 de expresii &#171;switch&#187;, care nu necesit\u0103 specificarea operatorului &#171;break&#187;, permi\u021b\u00e2nd combinarea etichetelor repetate \u0219i permi\u021b\u00e2nd utilizarea nu doar \u00een form\u0103 de operator, ci \u0219i ca expresie.\n<p>   var log = switch (event) {<br \/>\n       case PLAY -&gt; &#171;Utilizatorul a activat butonul de redare&#187;;<br \/>\n       case STOP, PAUSE -&gt; &#171;Utilizatorul are nevoie de o pauz\u0103&#187;;<br \/>\n       default -&gt; {<br \/>\n           String message = event.toString();<br \/>\n           LocalDateTime now = LocalDateTime.now();<br \/>\n           yield &#171;Eveniment necunoscut &#187; + message +<br \/>\n              &#187; \u00eenregistrat pe &#187; + now;<br \/>\n       }<br \/>\n   };<\/p>\n<li class=\"l\"> Suport experimental extins <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/368\">blocuri de text<\/a><\/noindex> &#8212; nou\u0103 form\u0103 de litere string, care permit includerea datelor textuale multi-linie \u00een codul surs\u0103 f\u0103r\u0103 a le sc\u0103pa de caractere \u0219i p\u0103str\u00e2nd formatarea original\u0103 a textului \u00een bloc. \u00cencadrarea blocului se face cu trei ghilimele duble. \u00cen Java 14, \u00een blocurile textuale se implementeaz\u0103 suportul pentru secven\u021ba de escape &#171;&#092;s&#187; pentru a defini un singur spa\u021biu \u0219i &#171;&#092;&#187; pentru combinarea cu urm\u0103toarea linie (ignorarea line break-ului c\u00e2nd trebuie s\u0103 sco\u021bi o linie foarte lung\u0103). De exemplu, \u00een loc de codul\n<p>   String html = \"\" +<br \/>\n   \"\n\t\" + \"\" +<br \/>\n   &#171;&#092;n&#092;t&#092;t&#187; + &#171;&lt;H1&gt;&#092;&#187;Java 14 este aici!&#092;&#187;&lt;\\\/H1&gt;&#187; +<br \/>\n   \"\n\t\" + \"\" +<br \/>\n   \"\n\" + \"\";<\/p>\n<p>poate fi specificat:<\/p>\n<p>   String html = \"\"<br \/>\n   &lt;HTML&gt;<br \/>\n     &lt;BODY&gt;<br \/>\n       &lt;H1&gt;&#187;Java 14&#092;<br \/>\n este aici!\"<\/H1><br \/>\n     &lt;\\\/BODY&gt;<br \/>\n   \"\";<\/p>\n<li class=\"l\"> Informa\u021bionalitatea diagnosticului a fost extins\u0103 \u00een caz de excep\u021bii <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/358\">NullPointerException<\/a><\/noindex>. Dac\u0103 anterior mesajul de eroare se refera doar la num\u0103rul de linie, acum detaliaz\u0103 care metod\u0103 a provocat excep\u021bia. Diagnosticarea extins\u0103 este activat\u0103 momentan doar la lansarea cu flagul &#171;-XX:+ShowCodeDetailsInExceptionMessages&#187;. De exemplu, folosind acest flag, excep\u021bia de pe linia\n<p>   var name = user.getLocation().getCity().getName();<\/p>\n<p> va conduce la afi\u0219area mesajului<\/p>\n<p>   Exception in thread &#171;main&#187; java.lang.NullPointerException: Nu se poate apela &#171;Location.getCity()&#187;<br \/>\n   deoarece valoarea returnat\u0103 de  &#171;User.getLocation()&#187; este null<br \/>\n   at NullPointerExample.main(NullPointerExample.java:5):5)<\/p>\n<p>ce permite \u00een\u021belegerea faptului c\u0103 metoda Location.getCity() nu a fost apelat\u0103, iar User.getLocation() a returnat valoarea null.<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/343\">Implementat<\/a><\/noindex> o variant\u0103 preliminar\u0103 a utilitarului jpackage, care permite crearea de pachete pentru aplica\u021bii Java independente (self-contained). Utilitarul se bazeaz\u0103 pe javapackager din JavaFX \u0219i permite formarea de pachete \u00een formatele native pentru diferite platforme (msi \u0219i exe pentru Windows, pkg \u0219i dmg pentru macOS, deb \u0219i rpm pentru Linux). Pachetele includ toate dependen\u021bele necesare.\n<li class=\"l\"> \u00cen colectorul de gunoi G1 <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/345\">ad\u0103ugat<\/a><\/noindex> un nou mecanism de distribu\u021bie a memoriei, care ia \u00een considerare specificit\u0103\u021bile func\u021bion\u0103rii pe sisteme mari, care utilizeaz\u0103 arhitectura <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Non-Uniform_Memory_Access\">NUMA<\/a><\/noindex>. Noua gestionare a memoriei este activat\u0103 prin flagul &#171;+XX:+UseNUMA&#187; \u0219i permite cre\u0219terea semnificativ\u0103 a performan\u021bei pe sistemele NUMA.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/349\">Ad\u0103ugat<\/a><\/noindex> API pentru monitorizarea \u00een timp real a evenimentelor JFR (JDK Flight Recorder), de exemplu pentru organizarea unei monitoriz\u0103ri continue.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/352\">Ad\u0103ugat<\/a><\/noindex> modulul jdk.nio.mapmode, care ofer\u0103 noi moduri (READ_ONLY_SYNC, WRITE_ONLY_SYNC) pentru crearea de buffer-e de octe\u021bi mapate (MappedByteBuffer), referindu-se la memoria non-volatil\u0103 (NVM).\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/370\">Implementat<\/a><\/noindex> varianta preliminar\u0103 a API Foreign-Memory Access, care permite aplica\u021biilor Java s\u0103 acceseze \u00een siguran\u021b\u0103 \u0219i eficient zonele de memorie din afara heap-ului Java, manipul\u00e2nd noile abstrac\u021bii MemorySegment, MemoryAddress \u0219i MemoryLayout.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/362\">Au fost declarate<\/a><\/noindex> porturile pentru sistemele de operare Solaris \u0219i procesoarele SPARC (Solaris\/SPARC, Solaris\/x64 \u0219i Linux\/SPARC) ca fiind depreciate cu inten\u021bia de a elimina aceste porturi \u00een viitor. Trecerea acestor porturi \u00een categoria celor depreciate va permite comunit\u0103\u021bii s\u0103 accelereze dezvoltarea de noi func\u021bionalit\u0103\u021bi OpenJDK, f\u0103r\u0103 a pierde timpul cu men\u021binerea particularit\u0103\u021bilor specifice Solaris \u0219i SPARC.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/363\">Eliminat<\/a><\/noindex> colectorul de gunoi CMS (Concurrent Mark Sweep), care acum doi ani a fost marcat ca deprecate \u0219i a r\u0103mas f\u0103r\u0103 suport (\u00eenlocuit de mult timp de colectorul de gunoi G1). \u00cen plus, <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/366\">anun\u021bat<\/a><\/noindex> \u00eenvechit utilizarea combina\u021biei de algoritmi de colectare a gunoiului ParallelScavenge \u0219i SerialOld (lansare cu op\u021biunile &#171;-XX:+UseParallelGC -XX:-UseParallelOldGC&#187;).\n<li class=\"l\"> A fost asigurat\u0103 suportul experimental pentru colectorul de gunoi ZGC (Z Garbage Collector) pe platformele macOS \u0219i Windows (anterior era suportat doar pe Linux). ZGC func\u021bioneaz\u0103 \u00een modul pasiv, minimiz\u00e2nd \u00eent\u00e2rzierile cauzate de colectarea de gunoi (timpul de oprire utiliz\u00e2nd ZGC nu dep\u0103\u0219e\u0219te 10 ms) \u0219i poate func\u021biona at\u00e2t cu heap-uri mici, c\u00e2t \u0219i cu heap-uri imense, cu dimensiuni de la c\u00e2teva sute de megabytes p\u00e2n\u0103 la multe terabytes.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/367\">Au fost eliminate<\/a><\/noindex> unelte \u0219i API pentru comprimarea fi\u0219ierelor JAR folosind algoritmul Pack200.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Sursa: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52559\">opennet.ro<\/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.2.1 - 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\/ro\/blog\/news\/vypusk-java-se-14\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Lansare Java SE 14 | ProHoster","description":"Dup\u0103 \u0219ase luni de dezvoltare, compania Oracle a lansat platforma","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/vypusk-java-se-14","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/74554","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=74554"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/74554\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=74554"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=74554"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=74554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}