{"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\/pl\/blog\/news\/vypusk-java-se-15","title":{"rendered":"Wydanie Java SE 15","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-September\/000291.html\">wyda\u0142a<\/a><\/noindex> platform\u0119 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.oracle.com\/java\/technologies\/javase-downloads.html\">Java SE 15<\/a><\/noindex> (Java Platform, Standard Edition 15), kt\u00f3ra jest u\u017cywana jako wzorcowa implementacja w projekcie OpenJDK. W Java SE 15 zachowana jest kompatybilno\u015b\u0107 wsteczna z wcze\u015bniejszymi wersjami platformy Java, wszystkie wcze\u015bniej napisane projekty Java b\u0119d\u0105 dzia\u0142a\u0142y bez zmian na nowej wersji. Gotowe do zainstalowania pakiety Java SE 15 (JDK, JRE i Server JRE) <noindex><a rel=\"nofollow\" href=\"http:\/\/jdk.java.net\/15\">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\/15\/\">Java 15<\/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 15 nale\u017cy do kategorii wyda\u0144 o standardowym okresie wsparcia, aktualizacje b\u0119d\u0105 wydawane do nast\u0119pnej wersji. Jako wersj\u0119 z d\u0142ugoterminowym wsparciem (LTS) nale\u017cy wykorzysta\u0107 Java SE 11, aktualizacje b\u0119d\u0105 wydawane do 2026 roku. Poprzednia ga\u0142\u0105\u017a LTS, Java 8, b\u0119dzie wspierana do grudnia 2020 roku. Kolejne wydanie LTS planowane jest na wrzesie\u0144 2021 roku. Przypominamy, \u017ce od wydania Java 10 projekt przeszed\u0142 na nowy proces rozwoju, kt\u00f3ry zak\u0142ada kr\u00f3tszy cykl wydawania nowych wersji. Nowa funkcjonalno\u015b\u0107 rozwija si\u0119 teraz w jednej nieprzerwanie aktualizowanej ga\u0142\u0119zi master, do kt\u00f3rej w\u0142\u0105czane s\u0105 gotowe zmiany, a co sze\u015b\u0107 miesi\u0119cy powstaj\u0105 ga\u0142\u0119zie stabilizuj\u0105ce nowe wydania. <\/p>\n<p>Z <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/15\/\">nowo\u015bci<\/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\u017cna<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/blogs.oracle.com\/javamagazine\/inside-java-15-fourteen-jeps-in-five-buckets\">zaznaczy\u0107<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/339\">Wbudowana<\/a><\/noindex> obs\u0142uga algorytmu tworzenia podpisu cyfrowego EdDSA (Edwards-Curve Digital Signature Algorithm  <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc8032\">RFC 8032<\/a><\/noindex>). Proponowana implementacja EdDSA nie zale\u017cy od platform sprz\u0119towych, jest odporna na ataki kana\u0142ami bocznymi (zapewnia sta\u0142y czas wszystkich oblicze\u0144) i pod wzgl\u0119dem wydajno\u015bci przewy\u017csza istniej\u0105c\u0105 implementacj\u0119 ECDSA, napisan\u0105 w j\u0119zyku C, przy tym samym poziomie ochrony. Na przyk\u0142ad EdDSA przy u\u017cyciu krzywej eliptycznej z kluczem 126-bitowym wykazuje wydajno\u015b\u0107 por\u00f3wnywaln\u0105 z ECDSA w przypadku krzywej eliptycznej secp256r1 i klucza 128-bitowego.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/360\">Dodano<\/a><\/noindex> eksperymentalne wsparcie dla klas i interfejs\u00f3w \u201esealed\u201d, kt\u00f3re nie mog\u0105 by\u0107 u\u017cywane przez inne klasy i interfejsy do dziedziczenia, rozszerzania lub nadpisywania implementacji. Klas sealed zapewnia tak\u017ce bardziej deklaratywny spos\u00f3b ograniczenia u\u017cycia superklasy ni\u017c modyfikatory dost\u0119pu, oparty na wyra\u017anym wypisaniu podklas, kt\u00f3re mog\u0105 by\u0107 rozszerzane.\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 {...}<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/371\">Dodano<\/a><\/noindex> wsparcie dla klas ukrytych, kt\u00f3re nie mog\u0105 by\u0107 u\u017cywane bezpo\u015brednio przez bajtkod innych klas. Kluczowym celem klas ukrytych jest u\u017cycie w frameworkach, kt\u00f3re dynamicznie generuj\u0105 klasy w czasie wykonania i u\u017cywaj\u0105 ich po\u015brednio przez <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)\">refleksj\u0119.<\/a><\/noindex>Takie klasy zazwyczaj maj\u0105 ograniczony cykl \u017cycia, dlatego ich utrzymanie do dost\u0119pu z statycznie generowanych klas nie jest uzasadnione i tylko zwi\u0119kszy zu\u017cycie pami\u0119ci. Klasy ukryte r\u00f3wnie\u017c umo\u017cliwiaj\u0105 obej\u015bcie do niestandardowego API sun.misc.Unsafe::defineAnonymousClass, kt\u00f3re ma by\u0107 usuni\u0119te w przysz\u0142o\u015bci.\n<li class=\"l\"> Zosta\u0142 ustabilizowany i uznany za gotowy do powszechnego u\u017cytku zbieracz \u015bmieci ZGC (Z Garbage Collector). ZGC dzia\u0142a w pasywnym trybie, minimalizuj\u0105c op\u00f3\u017anienia spowodowane zbieraniem \u015bmieci (czas zatrzymania przy u\u017cyciu ZGC nie przekracza 10 ms.) i mo\u017ce pracowa\u0107 zar\u00f3wno z ma\u0142ymi, jak i ogromnymi stertami, od kilku setek megabajt\u00f3w do wielu terabajt\u00f3w.\n<li class=\"l\"> Zosta\u0142 ustabilizowany i uznany za gotowy do powszechnego u\u017cytku<br \/>\n zbieracz \u015bmieci <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/shenandoah\/\">Shenandoah<\/a><\/noindex>, dzia\u0142aj\u0105cy z minimalnymi przestojami (Low-Pause-Time Garbage Collector). Shenandoah zosta\u0142 opracowany przez firm\u0119 Red Hat i charakteryzuje si\u0119 u\u017cyciem algorytmu, kt\u00f3ry skraca czas zatrzymania podczas zbierania \u015bmieci, przeprowadzaj\u0105c czyszczenie r\u00f3wnolegle z wykonywaniem aplikacji Java. Rozmiar op\u00f3\u017anie\u0144 wprowadzanych przez zbieracz \u015bmieci jest przewidywalny i nie zale\u017cy od rozmiaru sterty, tj. dla stert o wielko\u015bci 200 MB i 200 GB op\u00f3\u017anienia b\u0119d\u0105 identyczne (<noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.openjdk.java.net\/display\/shenandoah\/Main\">nie przekraczaj\u0105<\/a><\/noindex> 50 ms i zwykle wynosz\u0105 10 ms);<\/p>\n<li class=\"l\"> Stabilizowano i wprowadzono do j\u0119zyka wsparcie <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/378\">blok\u00f3w tekstowych<\/a><\/noindex> \u2014 nowa forma litera\u0142\u00f3w \u0142a\u0144cuchowych, pozwalaj\u0105ca na w\u0142\u0105czenie do kodu \u017ar\u00f3d\u0142owego danych tekstowych wielowierszowych bez potrzeby u\u017cywania znak\u00f3w specjalnych, zachowuj\u0105c oryginalne formatowanie tekstu w bloku. Otoczenie bloku jest realizowane trzema podw\u00f3jnymi cudzys\u0142owami.\n<p>Na przyk\u0142ad, zamiast kodu<\/p>\n<p>   String html = \"\" +<br \/>\n   \"\\n\\t\" + \"\" +<br \/>\n   \"\\n\\t\\t\" + \"<h1>Java 15 jest tutaj!<\/h1>\" +<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       <h1>\"Java 15\"<br \/>\n jest tutaj!\"<\/h1><br \/>\n     &lt;\\\/BODY&gt;<br \/>\n   \"\";<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/373\">Przeprojektowano<\/a><\/noindex> API Legacy DatagramSocket. Stare implementacje java.net.DatagramSocket i java.net.MulticastSocket zosta\u0142y zast\u0105pione nowoczesn\u0105 implementacj\u0105, kt\u00f3ra jest prostsza w debugowaniu i utrzymaniu oraz kompatybilna z wirtualnymi w\u0105tkami rozwijanymi w ramach projektu <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/projects\/loom\">Loom<\/a><\/noindex>. W przypadku mo\u017cliwego naruszenia zgodno\u015bci z istniej\u0105cym kodem, stara implementacja nie zosta\u0142a usuni\u0119ta i mo\u017ce by\u0107 aktywowana za pomoc\u0105 opcji jdk.net.usePlainDatagramSocketImpl.\n<li class=\"l\"> Zaproponowano drug\u0105 eksperymentaln\u0105 implementacj\u0119 <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/375\">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\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/384\">Zapewniono<\/a><\/noindex> druga eksperymentalna implementacja s\u0142owa kluczowego \"<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\/383\">Zaproponowano<\/a><\/noindex> drugi wst\u0119pny wariant API Foreign-Memory Access, umo\u017cliwiaj\u0105cy 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\/374\">Wy\u0142\u0105czone<\/a><\/noindex> i uznano za przestarza\u0142\u0105 technik\u0119 optymalizacji Biased Locking, stosowan\u0105 w HotSpot JVM w celu zmniejszenia koszt\u00f3w zwi\u0105zanych z blokadami. Technika ta straci\u0142a znaczenie na systemach z atomowymi instrukcjami oferowanymi przez nowoczesne procesory i jest zbyt pracoch\u0142onna w utrzymaniu z powodu swojej z\u0142o\u017cono\u015bci.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/385\">Og\u0142oszono<\/a><\/noindex> przestarza\u0142ym mechanizm <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/14\/docs\/specs\/rmi\/activation.html\">RMI Activation<\/a><\/noindex>, kt\u00f3ry zostanie usuni\u0119ty w jednym z kolejnych wyda\u0144. Zauwa\u017cono, \u017ce RMI Activation sta\u0142 si\u0119 przestarza\u0142y, przesuni\u0119ty w kategori\u0119 opcji ju\u017c w Java 8 i prawie nie jest stosowany w nowoczesnej praktyce.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/372\">Usuni\u0119to<\/a><\/noindex>  Silnik JavaScript <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=35427\">Nashorn<\/a><\/noindex>, kt\u00f3ry zosta\u0142 og\u0142oszony przestarza\u0142ym w Java SE 11.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/381\">Usuni\u0119to<\/a><\/noindex> porty dla systemu operacyjnego Solaris i procesor\u00f3w SPARC (Solaris\/SPARC, Solaris\/x64 i Linux\/SPARC). Usuni\u0119cie tych port\u00f3w 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<\/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=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.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-15\" \/>\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 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\/pl\/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\udd47Wydanie Java SE 15 | 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-15","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 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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/94334","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=94334"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/94334\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=94334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=94334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=94334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}