{"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\/pl\/blog\/news\/vypusk-java-se-14","title":{"rendered":"Wydanie Java SE 14","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Po sze\u015bciu miesi\u0105cach prac rozwojowych firma Oracle <noindex><a rel=\"nofollow\" href=\"http:\/\/mail.openjdk.java.net\/pipermail\/announce\/2020-March\/000282.htm\">wyda\u0142a<\/a><\/noindex> platform\u0119 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.oracle.com\/java\/technologies\/javase-downloads.html\">Java SE 14<\/a><\/noindex> (Java Platform, Standard Edition 14), kt\u00f3rego standardow\u0105 implementacj\u0105 jest otwarty projekt OpenJDK. W Java SE 14 zachowana jest zgodno\u015b\u0107 wsteczna z wcze\u015bniejszymi wersjami platformy Java, wi\u0119c wszystkie wcze\u015bniej napisane projekty Java b\u0119d\u0105 dzia\u0142a\u0107 bez zmian na nowej wersji. Gotowe do zainstalowania zestawy Java SE 14 (JDK, JRE i Server JRE) <noindex><a rel=\"nofollow\" href=\"http:\/\/jdk.java.net\/14\">przygotowano<\/a><\/noindex> dla system\u00f3w Linux (x86_64), Windows i macOS. Wzorcowa implementacja opracowana w ramach projektu OpenJDK <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/14\/\">Java 14<\/a><\/noindex> jest w pe\u0142ni otwarta na licencji GPLv2 z wyj\u0105tkami GNU ClassPath, kt\u00f3re umo\u017cliwiaj\u0105 dynamiczne \u0142\u0105czenie z produktami komercyjnymi. <\/p>\n<p>Java SE 14 zosta\u0142 zaklasyfikowany jako wydanie o standardowym okresie wsparcia, aktualizacje b\u0119d\u0105 wydawane do nast\u0119pnej wersji. Dla wersji o d\u0142ugoterminowym wsparciu (LTS) nale\u017cy u\u017cywa\u0107 Java SE 11, kt\u00f3rej aktualizacje b\u0119d\u0105 dost\u0119pne do 2026 roku. Poprzednia ga\u0142\u0105\u017a LTS Java 8 b\u0119dzie wspierana do grudnia 2020 roku. Nast\u0119pne wydanie LTS planowane jest na wrzesie\u0144 2021 roku. Przypominamy, \u017ce od wydania Java 10 projekt przeszed\u0142 na nowy proces rozwoju, obejmuj\u0105cy kr\u00f3tsze cykle tworzenia nowych wersji. Nowa funkcjonalno\u015b\u0107 rozwija si\u0119 teraz w jednej ci\u0105gle aktualizowanej ga\u0142\u0119zi g\u0142\u00f3wnej, do kt\u00f3rej w\u0142\u0105czane s\u0105 ju\u017c gotowe zmiany, a co sze\u015b\u0107 miesi\u0119cy odga\u0142\u0119zaj\u0105 si\u0119 ga\u0142\u0119zie stabilizacyjne nowych wyda\u0144. <\/p>\n<p>Z <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/14\/\">nowo\u015bci<\/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\u017cna<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/blogs.oracle.com\/javamagazine\/java-14-arrives-with-a-host-of-new-features\">zaznaczy\u0107<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Dodano eksperymentalne wsparcie <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/305\">dopasowania wzoru<\/a><\/noindex> w operatorze \"instanceof\", kt\u00f3ry pozwala od razu zdefiniowa\u0107 lokaln\u0105 zmienn\u0105 w celu odniesienia si\u0119 do sprawdzanej warto\u015bci. Na przyk\u0142ad, mo\u017cna od razu pisa\u0107 \"if (obj instanceof String s &amp;&amp; s.length() &gt; 5) {.. s.contains(..) ..}\" bez jawnego definiowania \"String s = (String) obj.\".\n<p>By\u0142o:<\/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 mo\u017cna obej\u015b\u0107 si\u0119 bez definiowania \"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\"> Dodano eksperymentalne wsparcie dla nowego s\u0142owa kluczowego &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/359\">record<\/a><\/noindex>\", kt\u00f3ra zapewnia zwarty spos\u00f3b definiowania klas, pozwalaj\u0105cym na obej\u015bcie si\u0119 bez jawnego definiowania r\u00f3\u017cnych metod niskiego poziomu, takich jak equals(), hashCode() i toString(), w przypadkach, gdy dane s\u0105 przechowywane tylko w polach, a zachowanie operacji na nich si\u0119 nie zmienia. Gdy w klasie u\u017cywane s\u0105 typowe implementacje metod equals(), hashCode() i toString(), w niej mo\u017cna obej\u015b\u0107 si\u0119 bez ich jawnego definiowania:\n<p>   public record BankTransaction(LocalDate date,<br \/>\n                              double amount,<br \/>\n                              String description) {}<\/p>\n<p>Ta deklaracja spowoduje automatyczne dodanie implementacji metod equals(), hashCode() i toString() w dodatku do konstruktora oraz metod zarz\u0105dzaj\u0105cych zmian\u0105 danych (getter).<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/361\">Standaryzowano<\/a><\/noindex> i domy\u015blnie w\u0142\u0105czono wsparcie dla nowej formy wyra\u017ce\u0144 &#171;switch&#187;, kt\u00f3ra nie wymaga podawania operatora &#171;break&#187;, umo\u017cliwiaj\u0105cej \u0142\u0105czenie powtarzaj\u0105cych si\u0119 etykiet i dopuszczaj\u0105cej u\u017cycie nie tylko w formie operatora, ale r\u00f3wnie\u017c jako wyra\u017cenia.\n<p>   var log = switch (event) {<br \/>\n       case PLAY -&gt; &#171;U\u017cytkownik uruchomi\u0142 przycisk odtwarzania&#187;;<br \/>\n       case STOP, PAUSE -&gt; &#171;U\u017cytkownik potrzebuje przerwy&#187;;<br \/>\n       default -&gt; {<br \/>\n           String message = event.toString();<br \/>\n           LocalDateTime teraz = LocalDateTime.now();<br \/>\n           yield &#171;Nieznane zdarzenie &#187; + message +<br \/>\n              &#187; zalogowane &#187; + now;<br \/>\n       }<br \/>\n   };<\/p>\n<li class=\"l\"> Rozszerzone wsparcie eksperymentalne <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/368\">blok\u00f3w tekstowych<\/a><\/noindex> &#8212; nowa forma litera\u0142\u00f3w tekstowych, kt\u00f3ra pozwala na w\u0142\u0105czanie do kodu \u017ar\u00f3d\u0142owego wieloliniowych danych tekstowych bez zastosowania w nich znak\u00f3w escape i zachowuj\u0105c oryginalne formatowanie tekstu w bloku. Ramka bloku odbywa si\u0119 przy pomocy trzech podw\u00f3jnych cudzys\u0142ow\u00f3w. W Javie 14 w blokach tekstowych wdro\u017cono wsparcie dla sekwencji escape &#171;&#092;s&#187; do okre\u015blenia jednego spacji i &#171;&#092;&#187; do \u0142\u0105czenia z nast\u0119pn\u0105 lini\u0105 (ignoruj\u0105c znaki nowej linii, gdy konieczne jest wy\u015bwietlenie bardzo d\u0142ugiego tekstu). Na przyk\u0142ad, zamiast kodu\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 jest tutaj!&#092;&#187;&lt;\\\/H1&gt;&#187; +<br \/>\n   \"\\n\\t\" + \"\" +<br \/>\n   \"\\n\" + \"\";<\/p>\n<p>mo\u017cna wskaza\u0107:<\/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 jest tutaj!\"<\/H1><br \/>\n     &lt;\\\/BODY&gt;<br \/>\n   \"\";<\/p>\n<li class=\"l\"> Zwi\u0119kszona informacyjno\u015b\u0107 diagnostyki w przypadku wyst\u0105pienia wyj\u0105tk\u00f3w <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/358\">NullPointerException<\/a><\/noindex>. Je\u015bli wcze\u015bniej komunikat o b\u0142\u0119dzie odnosi\u0142 si\u0119 jedynie do numeru linii, to teraz szczeg\u00f3\u0142owo okre\u015bla, kt\u00f3ry z metod wywo\u0142a\u0142 wyj\u0105tek. Rozszerzona diagnostyka jest obecnie w\u0142\u0105czana tylko przy uruchomieniu z flag\u0105 &#171;-XX:+ShowCodeDetailsInExceptionMessages&#187;. Na przyk\u0142ad, przy podaniu tej flagi, wyj\u0105tek w linii\n<p>   var name = user.getLocation().getCity().getName();<\/p>\n<p> spowoduje wygenerowanie komunikatu<\/p>\n<p>   Exception in thread &#171;main&#187; java.lang.NullPointerException: Nie mo\u017cna wywo\u0142a\u0107 &#171;Location.getCity()&#187;<br \/>\n   poniewa\u017c warto\u015b\u0107 zwracana przez &#171;User.getLocation()&#187; jest null<br \/>\n   w NullPointerExample.main(NullPointerExample.java:5):5)<\/p>\n<p>co pozwala zrozumie\u0107, \u017ce metoda Location.getCity() nie zosta\u0142a wywo\u0142ana, a User.getLocation() zwr\u00f3ci\u0142 warto\u015b\u0107 null.<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/343\">Zrealizowano<\/a><\/noindex> wst\u0119pna wersja narz\u0119dzia jpackage, kt\u00f3re umo\u017cliwia tworzenie pakiet\u00f3w dla samodzielnych (self-contained) aplikacji Java. Narz\u0119dzie opiera si\u0119 na javapackager z JavaFX i umo\u017cliwia tworzenie pakiet\u00f3w w formatach natywnych dla r\u00f3\u017cnych platform (msi i exe dla Windows, pkg i dmg dla macOS, deb i rpm dla Linux). Pakiety zawieraj\u0105 wszystkie niezb\u0119dne zale\u017cno\u015bci.\n<li class=\"l\"> W zbieraczu \u015bmieci G1 <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/345\">dodano<\/a><\/noindex> nowy mechanizm zarz\u0105dzania pami\u0119ci\u0105, uwzgl\u0119dniaj\u0105cy specyfik\u0119 pracy na du\u017cych systemach wykorzystuj\u0105cych architektur\u0119 <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Non-Uniform_Memory_Access\">NUMA<\/a><\/noindex>. Nowy przydzielacz pami\u0119ci w\u0142\u0105cza si\u0119 przy pomocy flagi &#171;+XX:+UseNUMA&#187; i pozwala znacznie zwi\u0119kszy\u0107 wydajno\u015b\u0107 w systemach NUMA.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/349\">Dodano<\/a><\/noindex> API do monitorowania wydarze\u0144 JFR (JDK Flight Recorder) w czasie rzeczywistym, na przyk\u0142ad do organizacji ci\u0105g\u0142ego monitorowania.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/352\">Dodano<\/a><\/noindex> modu\u0142 jdk.nio.mapmode, oferuj\u0105cy nowe tryby (READ_ONLY_SYNC, WRITE_ONLY_SYNC) do tworzenia mapowanych bufor\u00f3w bajtowych (MappedByteBuffer), odnosz\u0105cych si\u0119 do pami\u0119ci nieulotnej (NVM).\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/370\">Zrealizowano<\/a><\/noindex> wst\u0119pna wersja API Foreign-Memory Access, umo\u017cliwiaj\u0105ca aplikacjom Java bezpieczny i efektywny dost\u0119p do obszar\u00f3w pami\u0119ci poza stert\u0105 Java, manipuluj\u0105c nowymi abstrakcjami MemorySegment, MemoryAddress i MemoryLayout.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/362\">Og\u0142oszono<\/a><\/noindex> zdeaktualizowane porty dla systemu operacyjnego Solaris i procesor\u00f3w SPARC (Solaris\/SPARC, Solaris\/x64 i Linux\/SPARC) z zamiarem ich usuni\u0119cia w przysz\u0142o\u015bci. Przeklasyfikowanie tych port\u00f3w jako zdeaktualizowanych pozwoli spo\u0142eczno\u015bci przyspieszy\u0107 rozw\u00f3j nowych mo\u017cliwo\u015bci OpenJDK, nie trac\u0105c czasu na utrzymanie funkcji specyficznych dla Solaris i SPARC.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/363\">Usuni\u0119to<\/a><\/noindex> zgromadzenie \u015bmieci CMS (Concurrent Mark Sweep), kt\u00f3re dwa lata temu zosta\u0142o oznaczone jako zdeaktualizowane i pozosta\u0142o bez wsparcia (na jego miejscu od dawna jest zbieracz \u015bmieci G1). Ponadto, <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/366\">og\u0142oszono<\/a><\/noindex> przestarza\u0142ym wykorzystywaniu kombinacji algorytm\u00f3w zbierania \u015bmieci ParallelScavenge i SerialOld (uruchamianie z opcjami &#171;-XX:+UseParallelGC -XX:-UseParallelOldGC&#187;).\n<li class=\"l\"> Zapewni\u0142em eksperymentalne wsparcie dla zbieracza \u015bmieci ZGC (Z Garbage Collector) na platformach macOS i Windows (wcze\u015bniej wspierany tylko w Linuxie). ZGC dzia\u0142a w trybie pasywnym, maksymalnie minimalizuj\u0105c op\u00f3\u017anienia spowodowane zbieraniem \u015bmieci (czas zatrzymania podczas korzystania z ZGC nie przekracza 10 ms) i mo\u017ce dzia\u0142a\u0107 zar\u00f3wno z ma\u0142ymi, jak i olbrzymimi stertami, wielko\u015bci od kilku setek megabajt\u00f3w do wielu terabajt\u00f3w.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/367\">Usuni\u0119to<\/a><\/noindex> narz\u0119dzie i API do kompresji plik\u00f3w JAR z wykorzystaniem algorytmu Pack200.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>\u0179r\u00f3d\u0142o: <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.1.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\/pl\/blog\/news\/vypusk-java-se-14\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\/pl\/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\udd47Wydanie Java SE 14 | ProHoster","description":"Po sze\u015bciu miesi\u0105cach prac rozwojowych firma Oracle wyda\u0142a platform\u0119","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-java-se-14","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/74554","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=74554"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/74554\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=74554"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=74554"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=74554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}