{"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\/sq\/blog\/news\/vypusk-java-se-14","title":{"rendered":"Publikimi i Java SE 14","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Pas gjasht\u00eb muajsh zhvillimi, kompania Oracle <noindex><a rel=\"nofollow\" href=\"http:\/\/mail.openjdk.java.net\/pipermail\/announce\/2020-March\/000282.htm\">ka lan\u00e7uar<\/a><\/noindex> platform\u00ebn <noindex><a rel=\"nofollow\" href=\"https:\/\/www.oracle.com\/java\/technologies\/javase-downloads.html\">Java SE 14<\/a><\/noindex> (Java Platform, Standard Edition 14), me projekti referenc\u00eb e cila \u00ebsht\u00eb p\u00ebrdorur p\u00ebr implementimin e saj \u00ebsht\u00eb projekti hapur OpenJDK. N\u00eb Java SE 14 ruhet kompatibiliteti prapa me versionet e kaluara t\u00eb platform\u00ebs Java, t\u00eb gjitha projektet Java t\u00eb shkruara m\u00eb par\u00eb do t\u00eb funksionojn\u00eb pa ndryshime n\u00ebn menaxhimin e versionit t\u00eb ri. Grumbullimet gatishm\u00ebri p\u00ebr instalim t\u00eb Java SE 14 (JDK, JRE dhe Server JRE) <noindex><a rel=\"nofollow\" href=\"http:\/\/jdk.java.net\/14\">jan\u00eb p\u00ebrgatitur<\/a><\/noindex> p\u00ebr Linux (x86_64), Windows dhe macOS. Implementimi referenc\u00eb i zhvilluar n\u00eb kuad\u00ebr t\u00eb projektit OpenJDK <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/14\/\">Java 14<\/a><\/noindex> \u00ebsht\u00eb plot\u00ebsisht i hapur n\u00ebn licenc\u00ebn GPLv2 me p\u00ebrjashtime t\u00eb GNU ClassPath, q\u00eb lejojn\u00eb lidhjen dinamike me produkte komerciale. <\/p>\n<p>Java SE 14 i p\u00ebrket kategoris\u00eb s\u00eb l\u00ebshimeve me mb\u00ebshtetje normale, p\u00ebrdit\u00ebsime p\u00ebr t\u00eb cilat do t\u00eb l\u00ebshohen deri n\u00eb l\u00ebshimin e ardhsh\u00ebm. Si nj\u00eb deg\u00eb me mb\u00ebshtetje afatgjat\u00eb (LTS), duhet p\u00ebrdorur Java SE 11, p\u00ebrdit\u00ebsime p\u00ebr t\u00eb cilat do t\u00eb l\u00ebshohen deri n\u00eb vitin 2026. Dega e kaluar LTS Java 8 do t\u00eb mb\u00ebshtetet deri n\u00eb Dhjetor 2020. L\u00ebshimi i ardhsh\u00ebm LTS \u00ebsht\u00eb planifikuar p\u00ebr Shtator 2021. T\u00eb kujtojm\u00eb se q\u00eb nga l\u00ebshimi i Java 10, projekti \u00ebsht\u00eb kaluar n\u00eb nj\u00eb proces t\u00eb ri zhvillimi, q\u00eb p\u00ebrfshin nj\u00eb cik\u00ebl m\u00eb t\u00eb shkurt\u00ebr formimi t\u00eb l\u00ebshimeve t\u00eb reja. Funksionaliteti i ri tani zhvillohet n\u00eb nj\u00eb deg\u00eb master q\u00eb p\u00ebrdit\u00ebsohet vazhdimisht, n\u00eb t\u00eb cil\u00ebn p\u00ebrfshihen ndryshime tashm\u00eb t\u00eb gatshme dhe nga e cila \u00e7do gjasht\u00eb muaj ndahen deg\u00eb p\u00ebr stabilizimin e l\u00ebshimeve t\u00eb reja. <\/p>\n<p>Nga <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/14\/\">novitete<\/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\">mund t\u00eb<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/blogs.oracle.com\/javamagazine\/java-14-arrives-with-a-host-of-new-features\">sh\u00ebnohen<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> \u00cbsht\u00eb shtuar mb\u00ebshtetje eksperimentale <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/305\">t\u00eb p\u00ebrputhshm\u00ebris\u00eb me modelin<\/a><\/noindex> n\u00eb operatorin \"instanceof\", i cili lejon p\u00ebrcaktimin e menj\u00ebhersh\u00ebm t\u00eb nj\u00eb variabli lokal p\u00ebr qasjen n\u00eb vler\u00ebn e verifikuar. P\u00ebr shembull, mund t\u00eb shkruani menj\u00ebher\u00eb \"if (obj instanceof String s &amp;&amp; s.length() &gt; 5) {... s.contains(...)}\" pa p\u00ebrcaktimin eksplicit \"String s = (String) obj\".\n<p>Ishte:<\/p>\n<p>   if (obj instanceof Group) {<br \/>\n     Group group = (Group) obj;<br \/>\n     var entries = group.getEntries();<br \/>\n   }<\/p>\n<p>Tani mund t\u00eb shmangim p\u00ebrcaktimin \"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\"> E shtuar mb\u00ebshtetje eksperimentale p\u00ebr fjal\u00ebn ky\u00e7e &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/359\">record<\/a><\/noindex>\", q\u00eb ofron nj\u00eb form\u00eb kompakte p\u00ebr t\u00eb p\u00ebrcaktuar klasat, duke shmangur p\u00ebrcaktimin eksplicit t\u00eb metodave t\u00eb ndryshme t\u00eb nivelit t\u00eb ul\u00ebt, si equals(), hashCode() dhe toString(), n\u00eb raste kur t\u00eb dh\u00ebnat ruhen vet\u00ebm n\u00eb fusha, sjellja e pun\u00ebs me t\u00eb cilat nuk ndryshon. Kur n\u00eb klas\u00eb p\u00ebrdoren implementimet tipike t\u00eb metodave equals(), hashCode() dhe toString(), mund t\u00eb shmanget p\u00ebrcaktimi i tyre eksplicit:\n<p>   public record BankTransaction(LocalDate date,<br \/>\n                              double amount,<br \/>\n                              String description) {}<\/p>\n<p>Kjo deklarat\u00eb do t\u00eb \u00e7oj\u00eb n\u00eb shtimin automatik t\u00eb implementimeve t\u00eb metodave equals(), hashCode() dhe toString() p\u00ebrve\u00e7 konstruktorit dhe metodave q\u00eb kontrollojn\u00eb ndryshimin e t\u00eb dh\u00ebnave (getter).<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/361\">E standardizuar<\/a><\/noindex> dhe \u00ebsht\u00eb aktivizuar si standard mb\u00ebshtetje p\u00ebr form\u00ebn e re t\u00eb shprehjeve &#171;switch&#187;, e cila nuk k\u00ebrkon caktimin e operatorit &#171;break&#187;, duke lejuar bashkimin e etiketave t\u00eb p\u00ebrs\u00ebritura dhe duke mund\u00ebsuar p\u00ebrdorimin e saj jo vet\u00ebm si operator, por edhe si shprehje.\n<p>   var log = switch (event) {<br \/>\n       case PLAY -&gt; &#171;P\u00ebrdoruesi aktivizoi butonin e luajtjes&#187;;<br \/>\n       case STOP, PAUSE -&gt; &#171;P\u00ebrdoruesi ka nevoj\u00eb p\u00ebr nj\u00eb pushim&#187;;<br \/>\n       default -&gt; {<br \/>\n           String message = event.toString();<br \/>\n           LocalDateTime now = LocalDateTime.now();<br \/>\n           yield &#171;Ngjarje e panjohur &#187; + message +<br \/>\n              &#187; i regjistruar n\u00eb &#187; + tani;<br \/>\n       }<br \/>\n   };<\/p>\n<li class=\"l\"> \u00cbsht\u00eb zgjeruar mb\u00ebshtetje eksperimentale <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/368\">blloqet tekstore \u00ebsht\u00eb stabilizuar dhe futur n\u00eb gjuh\u00eb<\/a><\/noindex> &#8212; forma e re e literal\u00ebve t\u00eb vargjeve, q\u00eb lejojn\u00eb p\u00ebrfshirjen e t\u00eb dh\u00ebnave tekstuale shum\u00eb-rreshtore n\u00eb kodin burimor pa p\u00ebrdorimin e escapes dhe duke ruajtur formatin origjinal t\u00eb tekstit n\u00eb bllok. Kufizimi i bllokut b\u00ebhet me tre cita t\u00eb dyfishta. N\u00eb Java 14, n\u00eb blloqet tekstuale \u00ebsht\u00eb implementuar mb\u00ebshtetje p\u00ebr sekuestrimin ' &#171;&#092;s&#187; p\u00ebr t\u00eb p\u00ebrcaktuar nj\u00eb hap\u00ebsir\u00eb dhe &#171;&#092;&#187; p\u00ebr bashkimin me rreshtin tjet\u00ebr (duke injoruar kalimin e rreshtit, kur \u00ebsht\u00eb e nevojshme t\u00eb shfaqet nj\u00eb rresht shum\u00eb i gjat\u00eb). P\u00ebr shembull, n\u00eb vend t\u00eb kodit\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 \u00ebsht\u00eb k\u00ebtu!&#092;&#187;&lt;\\\/H1&gt;&#187; +<br \/>\n   \"\\n\\t\" + \"\" +<br \/>\n   \"\\n\" + \"\";<\/p>\n<p>mund t\u00eb specifikohet:<\/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 is here!\"<\/H1><br \/>\n     &lt;\\\/BODY&gt;<br \/>\n   \"\";<\/p>\n<li class=\"l\"> Informacioni dijagnostik\u00eb \u00ebsht\u00eb zgjeruar prilikom shfaqjes s\u00eb p\u00ebrjashtimeve <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/358\">NullPointerException<\/a><\/noindex>. N\u00ebse m\u00eb par\u00eb mesazhi i gabimit vet\u00ebm referohej n\u00eb numrin e rreshtit, tani detaji i cili metod\u00eb shkaktoi p\u00ebrjashtimin \u00ebsht\u00eb specifikuar. Diagnostika e zgjeruar tani aktivizohet vet\u00ebm kur ekzekutohet me flamurin &#171;-XX:+ShowCodeDetailsInExceptionMessages&#187;. P\u00ebr shembull, duke specifikuar k\u00ebt\u00eb flamur, p\u00ebrjashtimi n\u00eb rresht\n<p>   var name = user.getLocation().getCity().getName();<\/p>\n<p> do t\u00eb rezultoj\u00eb n\u00eb shfaqjen e mesazhit<\/p>\n<p>   P\u00ebrjashtim n\u00eb thread &#171;main&#187; java.lang.NullPointerException: Nuk mund t\u00eb th\u00ebrras &#171;Location.getCity()&#187;<br \/>\n   sepse vlera e kthyer nga &#171;User.getLocation()&#187; \u00ebsht\u00eb null<br \/>\n   at NullPointerExample.main(NullPointerExample.java:5):5)<\/p>\n<p>q\u00eb lejon t\u00eb kuptohet se metoda Location.getCity() nuk u thirr, dhe User.getLocation() ktheu nj\u00eb vler\u00eb null.<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/343\">\u00ebsht\u00eb realizuar<\/a><\/noindex> versioni paraprak i utilitarit jpackage, q\u00eb lejon krijimin e paketave p\u00ebr aplikacione Java t\u00eb vet\u00eb-mjaftueshme (self-contained). Utilitari bazohet n\u00eb javapackager nga JavaFX dhe lejon formimin e paketave n\u00eb formate nativas p\u00ebr platforma t\u00eb ndryshme (msi dhe exe p\u00ebr Windows, pkg dhe dmg p\u00ebr macOS, deb dhe rpm p\u00ebr Linux). Paketat p\u00ebrfshijn\u00eb t\u00eb gjitha var\u00ebsit\u00eb e nevojshme.\n<li class=\"l\"> N\u00eb mbledh\u00ebsin e integrimit G1 <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/345\">\u00ebsht\u00eb shtuar<\/a><\/noindex> \u00ebsht\u00eb nj\u00eb mekaniz\u00ebm i ri i shp\u00ebrndarjes s\u00eb memories, q\u00eb merr parasysh specifikat e pun\u00ebs n\u00eb sisteme t\u00eb m\u00ebdha q\u00eb p\u00ebrdorin arkitektur\u00ebn <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Non-Uniform_Memory_Access\">NUMA<\/a><\/noindex>. Ralli i ri i memories aktivizohet me flamurin &#171;+XX:+UseNUMA&#187; dhe lejon nj\u00eb rritje t\u00eb konsiderueshme t\u00eb performanc\u00ebs n\u00eb sistemet NUMA.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/349\">Shtuar<\/a><\/noindex> API p\u00ebr ndjekjen e ngjarjeve JFR (JDK Flight Recorder) n\u00eb koh\u00eb reale, p\u00ebr shembull p\u00ebr organizimin e monitorimit t\u00eb vazhduesh\u00ebm.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/352\">Shtuar<\/a><\/noindex> moduli jdk.nio.mapmode, q\u00eb ofron m\u00ebnyra t\u00eb reja (READ_ONLY_SYNC, WRITE_ONLY_SYNC) p\u00ebr krijimin e buferave t\u00eb mapuar (MappedByteBuffer), q\u00eb referohen n\u00eb memorien e brezit t\u00eb energjis\u00eb (NVM).\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/370\">\u00ebsht\u00eb realizuar<\/a><\/noindex> versioni paraprak i API Foreign-Memory Access, q\u00eb lejon aplikacionet Java t\u00eb ken\u00eb qasje t\u00eb sigurt dhe efikase n\u00eb zonat e memories jasht\u00eb grumbullit Java, duke manipuluar abstraksionet e reja MemorySegment, MemoryAddress dhe MemoryLayout.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/362\">Deklaruar<\/a><\/noindex> portal t\u00eb vjetra p\u00ebr OS Solaris dhe procesor\u00ebt SPARC (Solaris\/SPARC, Solaris\/x64 dhe Linux\/SPARC) me q\u00ebllimin e heqjes s\u00eb k\u00ebtyre porteve n\u00eb t\u00eb ardhmen. Kalimi i k\u00ebtyre porteve n\u00eb statusin e vjetruar do t\u2019i lejoj\u00eb komunitetit t\u00eb nxitoj\u00eb zhvillimin e mund\u00ebsive t\u00eb reja OpenJDK, pa humbur koh\u00eb n\u00eb mb\u00ebshtetje t\u00eb ve\u00e7orive specifike p\u00ebr Solaris dhe SPARC.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/363\">Eliminuar<\/a><\/noindex> mbledh\u00ebsi i plehrave CMS (Concurrent Mark Sweep), i cili dy vjet m\u00eb par\u00eb u shenjtua si i vjetruar dhe mbeti pa mb\u00ebshtetje (n\u00eb vend t\u00eb CMS ka ardhur mbledh\u00ebsi i plehrave G1). P\u00ebr m\u00eb tep\u00ebr, <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/366\">u shpall<\/a><\/noindex> e pap\u00ebrdorur p\u00ebrdorimin e kombinimeve t\u00eb algoritmeve t\u00eb koleksionit t\u00eb mbeturinave ParallelScavenge dhe SerialOld (n\u00eb ekzekutim me opsionet &#171;-XX:+UseParallelGC -XX:-UseParallelOldGC&#187;).\n<li class=\"l\"> \u00cbsht\u00eb siguruar mb\u00ebshtetje eksperimentale p\u00ebr mbledh\u00ebsin e plehrave ZGC (Z Garbage Collector) n\u00eb platformat macOS dhe Windows (m\u00eb par\u00eb ishte mb\u00ebshtetur vet\u00ebm n\u00eb Linux). ZGC punon n\u00eb nj\u00eb mod t\u00eb pasivizuar, sa m\u00eb shum\u00eb q\u00eb \u00ebsht\u00eb e mundur, minimizon vonesat p\u00ebr shkak t\u00eb mbledhjes s\u00eb plehrave (koha e ndalimit gjat\u00eb p\u00ebrdorimit t\u00eb ZGC nuk kalon 10 ms.) dhe mund t\u00eb punoj\u00eb si me kupa t\u00eb vogla ashtu edhe me kupa t\u00eb m\u00ebdha, nga disa qindra megabajt deri n\u00eb shum\u00eb terabajt.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/367\">Eliminuar<\/a><\/noindex> instrumenti dhe API p\u00ebr kompresimin e skedar\u00ebve JAR duke p\u00ebrdorur algoritmin Pack200.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Burimi: <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.2 - 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\/sq\/blog\/news\/vypusk-java-se-14\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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\/sq\/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\udd47L\u00ebshimi i Java SE 14 | ProHoster","description":"Pas gjasht\u00eb muajve zhvillimi, kompania Oracle l\u00ebshoi platform\u00ebn","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/news\/vypusk-java-se-14","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\/sq\/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\/sq\/wp-json\/wp\/v2\/posts\/74554","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=74554"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/74554\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=74554"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=74554"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=74554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}