{"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\/lv\/blog\/news\/vypusk-java-se-14","title":{"rendered":"Java SE 14 izlai\u0161ana","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u0113c se\u0161u m\u0113ne\u0161u izstr\u0101des uz\u0146\u0113mums Oracle <noindex><a rel=\"nofollow\" href=\"http:\/\/mail.openjdk.java.net\/pipermail\/announce\/2020-March\/000282.htm\">izlaida<\/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), k\u0101 referen\u010du realiz\u0101ciju izmantojot atv\u0113rto projektu OpenJDK. Java SE 14 saglab\u0101 atpaka\u013c sader\u012bbu ar iepriek\u0161\u0113jiem Java platformas izlaidumiem, visi iepriek\u0161 rakst\u012btie Java projekti bez izmai\u0146\u0101m darbosies uz jauno versiju. Gatavas instal\u0101cijas Java SE 14 versijas (JDK, JRE un Server JRE) <noindex><a rel=\"nofollow\" href=\"http:\/\/jdk.java.net\/14\">ir sagatavotas<\/a><\/noindex> Linux (x86_64), Windows un macOS. Projekta OpenJDK ietvaros izstr\u0101d\u0101t\u0101 referen\u010du realiz\u0101cija <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/14\/\">Java 14<\/a><\/noindex> ir piln\u012bb\u0101 atv\u0113rta saska\u0146\u0101 ar GPLv2 licenci ar GNU ClassPath iz\u0146\u0113mumiem, kas at\u013cauj dinamisku saist\u012b\u0161anu ar komerci\u0101liem produktiem. <\/p>\n<p>Java SE 14 tiek klasific\u0113ts k\u0101 izlaidums ar parasto atbalsta laiku, atjaunin\u0101jumi tiks izlaisti l\u012bdz n\u0101kamajam izlaidumam. K\u0101 ilgsto\u0161as atbalsta (LTS) atzaru vajadz\u0113tu izmantot Java SE 11, kuram atjaunin\u0101jumi tiks izlaisti l\u012bdz 2026. gadam. Iepriek\u0161\u0113jais LTS atzars Java 8 tiks atbalst\u012bts l\u012bdz 2020. gada decembrim. N\u0101kamais LTS izlaidums ir pl\u0101nots 2021. gada septembr\u012b. Atg\u0101din\u0101m, ka, s\u0101kot ar Java 10 izlaidumu, projekts p\u0101rg\u0101ja uz jaunu izstr\u0101des procesu, kas ietver \u012bs\u0101kus jaun\u0101 izlaiduma ciklus. Jauna funkcionalit\u0101te tagad att\u012bst\u0101s vien\u0101 past\u0101v\u012bgi atjaunin\u0101t\u0101 master atzar\u0101, kas iek\u013cauj jau gatavas izmai\u0146as un no kuras reizi se\u0161os m\u0113ne\u0161os tika atzaroti jaunu izlaidumu stabiliz\u0113\u0161anas atzari. <\/p>\n<p>No <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/14\/\">jaunumiem<\/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\">var<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/blogs.oracle.com\/javamagazine\/java-14-arrives-with-a-host-of-new-features\">atz\u012bm\u0113t<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Pievienota eksperiment\u0101l\u0101 atbalsta funkcionalit\u0101te <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/305\">\u0161ablona saska\u0146o\u0161anai<\/a><\/noindex> \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0435 &#171;instanceof&#187;, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u043f\u0438\u0441\u0430\u0442\u044c &#171;if (obj instanceof String s &#038;&#038; s.length() > 5) {.. s.contains(..) ..}&#187; \u0431\u0435\u0437 \u044f\u0432\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f &#171;String s = (String) obj&#187;.\n<p>Bija:<\/p>\n<p>   if (obj instanceof Group) {<br \/>\n     Group group = (Group) obj;<br \/>\n     var entries = group.getEntries();<br \/>\n   }<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f &#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\"> \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/359\">record<\/a><\/noindex>&#171;, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e  \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0443\u044e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u044f\u0432\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a equals(), hashCode() \u0438 toString(), \u0432 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430  \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043f\u043e\u043b\u044f\u0445, \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f. \u041a\u043e\u0433\u0434\u0430 \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u0438\u043f\u043e\u0432\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 equals(), hashCode() \u0438 toString(), \u0432 \u043d\u0451\u043c \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u0438\u0445 \u044f\u0432\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f:\n<p>   public record BankTransaction(LocalDate date,<br \/>\n                              double amount,<br \/>\n                              String description) {}<\/p>\n<p>\u0160is pazi\u0146ojums nov leads pie autom\u0101tiskas equals(), hashCode() un toString() meto\u017eu implement\u0101ciju pievieno\u0161anas papildus konstruktoram un metod\u0113m, kas kontrol\u0113 datu izmai\u0146as (getter).<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/361\">Standartiz\u0113ta<\/a><\/noindex> \u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u043e\u0432\u043e\u0439 \u0444\u043e\u0440\u043c\u044b \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 &#171;switch&#187;, \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0435\u0439 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 &#171;break&#187;, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0439 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u043c\u0435\u0442\u043a\u0438 \u0438 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0444\u043e\u0440\u043c\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430, \u043d\u043e \u0438 \u043a\u0430\u043a \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f.\n<p>   var log = switch (event) {<br \/>\n       case PLAY -&gt; &#171;User has triggered the play button&#187;;<br \/>\n       case STOP, PAUSE -&gt; &#171;User needs a break&#187;;<br \/>\n       default -> {<br \/>\n           String message = event.toString();<br \/>\n           LocalDateTime now = LocalDateTime.now();<br \/>\n           yield &#171;Unknown event &#187; + message +<br \/>\n              &#187; logged on &#187; + now;<br \/>\n       }<br \/>\n   };<\/p>\n<li class=\"l\"> Papla\u0161in\u0101ta eksperiment\u0101l\u0101 atbalsts <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/368\">teksta blokiem<\/a><\/noindex> &#8212; \u043d\u043e\u0432\u043e\u0439 \u0444\u043e\u0440\u043c\u044b \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u043b\u0438\u0442\u0435\u0440\u0430\u043b\u043e\u0432, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0445 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u0435\u0437 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043d\u0438\u0445 \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u0431\u043b\u043e\u043a\u0435. \u041e\u0431\u0440\u0430\u043c\u043b\u0435\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0430 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0440\u0435\u043c\u044f \u0434\u0432\u043e\u0439\u043d\u044b\u043c\u0438 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u043c\u0438. \u0412 Java 14 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0431\u043b\u043e\u043a\u0430\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 escape-\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 &#171;&#92;s&#187;  \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0431\u0435\u043b\u0430 \u0438 &#171;&#92;&#187; \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 (\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u0442\u0440\u043e\u043a\u0438,  \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u043e\u0447\u0435\u043d\u044c \u0434\u043b\u0438\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u043e\u0434\u0430\n<p>   String html = &#171;&lt;HTML&gt;&#187; +<br \/>\n   &#171;&#92;n&#92;t&#187; + &#171;&lt;BODY&gt;&#187; +<br \/>\n   &#171;&#92;n&#92;t&#92;t&#187; + &#171;&lt;H1&gt;&#92;&#187;Java 14 is here!&#92;&#187;&lt;\/H1&gt;&#187; +<br \/>\n   &#171;&#92;n&#92;t&#187; + &#171;&lt;\/BODY&gt;&#187; +<br \/>\n   &#171;&#92;n&#187; + &#171;&lt;\/HTML&gt;&#187;;<\/p>\n<p>var rakst\u012bt:<\/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&#92;<br \/>\n is here!&#187;&lt;\/H1&gt;<br \/>\n     &lt;\\\/BODY&gt;<br \/>\n   &lt;\/HTML&gt;&#187;&#187;&#187;;<\/p>\n<li class=\"l\"> Papla\u0161in\u0101ta diagnostikas informat\u012bva patolo\u0123ijas gad\u012bjumos <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/358\">NullPointerException<\/a><\/noindex>. \u0415\u0441\u043b\u0438 \u0440\u0430\u043d\u044c\u0448\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u043b\u0438\u0448\u044c \u0441\u0441\u044b\u043b\u0430\u043b\u043e\u0441\u044c \u043d\u0430 \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438, \u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0432 \u043d\u0451\u043c \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u043e\u0439 \u0438\u0437 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0432\u044b\u0437\u0432\u0430\u043b \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430 \u043f\u043e\u043a\u0430 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0441 \u0444\u043b\u0430\u0433\u043e\u043c &#171;-XX:+ShowCodeDetailsInExceptionMessages&#187;. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u043b\u0430\u0433\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435\n<p>   var name = user.getLocation().getCity().getName();<\/p>\n<p> novad\u012bs pie k\u013c\u016bdas zi\u0146ojuma<\/p>\n<p>   Exception in thread &#171;main&#187; java.lang.NullPointerException: Cannot invoke &#171;Location.getCity()&#187;<br \/>\n   because the return value of  &#171;User.getLocation()&#187; is null<br \/>\n   pie NullPointerExample.main(NullPointerExample.java:5):5)<\/p>\n<p>kas \u013cauj saprast, ka metode Location.getCity() netika izsaukta, bet User.getLocation() atgrieza null v\u0113rt\u012bbu.<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/343\">Ieviests<\/a><\/noindex> pirmais jpackage r\u012bka variants, kas \u013cauj izveidot paket\u0113s pa\u0161pietiekam\u0101m (self-contained) Java lietotn\u0113m. R\u012bks balst\u0101s uz javapackager no JavaFX un \u013cauj veidot paket\u0113s form\u0101tos, kas ir rakstur\u012bgi da\u017e\u0101d\u0101m platform\u0101m (msi un exe Windows, pkg un dmg macOS, deb un rpm Linux). Paket\u0113s iek\u013cautas visas nepiecie\u0161am\u0101s atkar\u012bbas.\n<li class=\"l\"> G1 atkritumu sav\u0101c\u0113js <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/345\">ieg\u016bts<\/a><\/noindex> jauns atmi\u0146as sadales meh\u0101nisms, kas \u0146em v\u0113r\u0101 lielu sist\u0113mu specifiku, kas izmanto <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Non-Uniform_Memory_Access\">NUMA<\/a><\/noindex>. \u041d\u043e\u0432\u044b\u0439 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u043f\u0430\u043c\u044f\u0442\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u043b\u0430\u0433\u0430 &#171;+XX:+UseNUMA&#187; \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0430 NUMA-\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/349\">Pievienots<\/a><\/noindex> API, kas \u013cauj re\u0101llaik\u0101 izsekot JFR (JDK Flight Recorder) notikumiem, piem\u0113ram, nep\u0101rtrauktai uzraudz\u012bbai.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/352\">Pievienots<\/a><\/noindex> modulis jdk.nio.mapmode, kas pied\u0101v\u0101 jaunus re\u017e\u012bmus (READ_ONLY_SYNC, WRITE_ONLY_SYNC) map\u0113tu byte buferu (MappedByteBuffer) izveidei, kas atsaucas uz neizn\u012bcin\u0101mu atmi\u0146u (NVM).\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/370\">Ieviests<\/a><\/noindex> pirmais Foreign-Memory Access API variants, kas \u013cauj Java lietotn\u0113m dro\u0161i un efekt\u012bvi piek\u013c\u016bt atmi\u0146as laukiem \u0101rpus Java heap, manipul\u0113jot ar jaun\u0101m abstrakcij\u0101m MemorySegment, MemoryAddress un MemoryLayout.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/362\">Pasludin\u0101ti<\/a><\/noindex> novecoju\u0161i porti Solaris OS un SPARC procesoriem (Solaris\/SPARC, Solaris\/x64 un Linux\/SPARC) ar nodomu n\u0101kotn\u0113 tos iz\u0146emt. \u0160o portu p\u0101reja uz novecoju\u0161iem \u013caus kopienai pa\u0101trin\u0101t jaunu iesp\u0113ju att\u012bst\u012bbu OpenJDK, net\u0113r\u0113jot laiku, uzturot Solaris un SPARC specifisk\u0101s iez\u012bmes.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/363\">Iz\u0146emts<\/a><\/noindex> CMS atkritumu sav\u0101c\u0113js (Concurrent Mark Sweep), kas pirms diviem gadiem tika atz\u012bts par novecoju\u0161u un palicis bez atbalsta (CMS viet\u0101 sen ir n\u0101cis G1 atkritumu sav\u0101c\u0113js). Turkl\u0101t, <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/366\">pazi\u0146ots<\/a><\/noindex> \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0441\u0431\u043e\u0440\u043a\u0438 \u043c\u0443\u0441\u043e\u0440\u0430 ParallelScavenge  \u0438 SerialOld (\u0437\u0430\u043f\u0443\u0441\u043a \u0441 \u043e\u043f\u0446\u0438\u044f\u043c\u0438 &#171;-XX:+UseParallelGC -XX:-UseParallelOldGC&#187;).\n<li class=\"l\"> Ieguvusi eksperiment\u0101l\u0101 atbalsta ZGC (Z Garbage Collector) atkritumu sav\u0101c\u0113jam macOS un Windows platform\u0101s (iepriek\u0161 tika atbalst\u012bts tikai Linux). ZGC darbojas pas\u012bv\u0101 re\u017e\u012bm\u0101, cik vien iesp\u0113jams samazinot kav\u0113jumus atkritumu sav\u0101k\u0161anas d\u0113\u013c (laiks apst\u0101\u0161an\u0101s, lietojot ZGC, nep\u0101rsniedz 10 ms.) un var darboties gan ar neliel\u0101m, gan milz\u012bg\u0101m kaudz\u0113m, kuru izm\u0113rs sv\u0101rst\u0101s no da\u017eu simtu megabaitu l\u012bdz daudziem terabaitiem.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/367\">No\u0146emti<\/a><\/noindex> r\u012bki un API JAR failu saspie\u0161anai, izmantojot Pack200 algoritmu.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Avots: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52559\">opennet.lv<\/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\/lv\/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=\"lv_LV\" \/>\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\/lv\/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\udd47Java SE 14 laidiena izlaidums | ProHoster","description":"P\u0113c se\u0161u m\u0113ne\u0161u att\u012bst\u012bbas uz\u0146\u0113mums Oracle laidis klaj\u0101 platformu","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/news\/vypusk-java-se-14","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","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\/lv\/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\/lv\/wp-json\/wp\/v2\/posts\/74554","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=74554"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/74554\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=74554"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=74554"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=74554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}