{"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\/it\/blog\/novosti-interneta\/vypusk-java-se-15","title":{"rendered":"Rilascio di Java SE 15","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Dopo sei mesi di sviluppo, Oracle <noindex><a rel=\"nofollow\" href=\"http:\/\/mail.openjdk.java.net\/pipermail\/announce\/2020-September\/000291.html\">ha rilasciato<\/a><\/noindex> la piattaforma <noindex><a rel=\"nofollow\" href=\"https:\/\/www.oracle.com\/java\/technologies\/javase-downloads.html\">Java SE 15<\/a><\/noindex> (Java Platform, Standard Edition 15), la cui implementazione di riferimento \u00e8 un progetto open source OpenJDK. In Java SE 15 \u00e8 mantenuta la retrocompatibilit\u00e0 con le versioni precedenti della piattaforma Java, tutti i progetti Java precedentemente scritti funzioneranno senza modifiche con la nuova versione. Le versioni pronte per l'installazione di Java SE 15 (JDK, JRE e Server JRE) <noindex><a rel=\"nofollow\" href=\"http:\/\/jdk.java.net\/15\">preparati<\/a><\/noindex> per Linux (x86_64), Windows e macOS. L'implementazione di riferimento sviluppata nel progetto OpenJDK <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/15\/\">Java 15<\/a><\/noindex> \u00e8 completamente open source sotto la licenza GPLv2 con eccezioni GNU ClassPath, che consentono il collegamento dinamico con prodotti commerciali. <\/p>\n<p>Java SE 15 \u00e8 classificato come una versione con supporto standard, con aggiornamenti previsti fino al prossimo rilascio. Per una versione con supporto a lungo termine (LTS), si consiglia di utilizzare Java SE 11, i cui aggiornamenti saranno disponibili fino al 2026. La precedente versione LTS, Java 8, sar\u00e0 supportata fino a dicembre 2020. Il prossimo rilascio LTS \u00e8 previsto per settembre 2021. Ricordiamo che a partire da Java 10, il progetto ha adottato un nuovo processo di sviluppo, caratterizzato da cicli di rilascio pi\u00f9 brevi. Le nuove funzionalit\u00e0 vengono ora sviluppate in un ramo master costantemente aggiornato, in cui vengono integrate le modifiche gi\u00e0 pronte, dalle quali si diramano rami per stabilizzare i nuovi rilasci ogni sei mesi. <\/p>\n<p>Da <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/15\/\">novit\u00e0<\/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\">\u00e8 possibile<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/blogs.oracle.com\/javamagazine\/inside-java-15-fourteen-jeps-in-five-buckets\">selezionare<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/339\">Integrato<\/a><\/noindex> supporto per l'algoritmo di creazione della firma digitale EdDSA (Edwards-Curve Digital Signature Algorithm  <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc8032\">RFC 8032<\/a><\/noindex>). L'implementazione proposta di EdDSA non dipende dalle piattaforme hardware, \u00e8 protetta da attacchi tramite canali laterali (garantendo un tempo costante per tutti i calcoli) e supera in prestazioni l'attuale implementazione di ECDSA scritta in C, mantenendo lo stesso livello di sicurezza. Ad esempio, EdDSA, utilizzando una curva ellittica con una chiave a 126 bit, dimostra prestazioni simili a ECDSA con la curva ellittica secp256r1 e una chiave a 128 bit.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/360\">Aggiunto<\/a><\/noindex> \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 \u0437\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u043d\u043d\u044b\u0445 (&#171;sealed&#187;) \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f  \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 \u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043c\u0438 \u0434\u043b\u044f \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0417\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u043d\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0443\u043f\u0435\u0440\u043a\u043b\u0430\u0441\u0441\u0430, \u0447\u0435\u043c \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u044f\u0432\u043d\u043e\u043c \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438 \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u0440\u0430\u0437\u0440\u0435\u0448\u0451\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f.\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 {&#8230;}<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/371\">Aggiunto<\/a><\/noindex> supporto per classi nascoste, che non possono essere utilizzate direttamente dal bytecode di altre classi. L'uso principale delle classi nascoste \u00e8 quello di essere utilizzate in framework che generano dinamicamente classi durante l'esecuzione e le utilizzano indirettamente, tramite <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)\">riflessione<\/a><\/noindex>. Tali classi hanno generalmente un ciclo di vita limitato, quindi mantenerle per l'accesso da classi generate staticamente non \u00e8 giustificato e porter\u00e0 solo a un aumento del consumo di memoria. Le classi nascoste consentono anche di evitare l'uso dell'API non standard sun.misc.Unsafe::defineAnonymousClass, che \u00e8 prevista per la rimozione in futuro.\n<li class=\"l\"> Stabilizzato e riconosciuto pronto per l'uso generale il garbage collector ZGC (Z Garbage Collector). ZGC opera in modalit\u00e0 passiva, riducendo al minimo i ritardi dovuti alla raccolta dei rifiuti (il tempo di arresto quando si utilizza ZGC non supera i 10 ms) e pu\u00f2 funzionare sia con piccole che con enormi heap, con dimensioni che vanno da alcune centinaia di megabyte a diversi terabyte.\n<li class=\"l\"> Stabilizzato e riconosciuto pronto per l'uso generale<br \/>\n garbage collector <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/shenandoah\/\">Shenandoah<\/a><\/noindex>, in grado di funzionare con pause minime (Low-Pause-Time Garbage Collector). Shenandoah \u00e8 stato sviluppato da Red Hat ed \u00e8 noto per l'uso di un algoritmo che riduce il tempo di pausa durante la raccolta dei rifiuti eseguendo la pulizia in parallelo con l'esecuzione delle applicazioni Java. Il ritardo causato dal garbage collector \u00e8 prevedibile e non dipende dalla dimensione dell'heap, cio\u00e8 per heap di 200 MB e 200 GB i ritardi saranno identici (<noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.openjdk.java.net\/display\/shenandoah\/Main\">non superano<\/a><\/noindex> i 50 ms e di solito rientrano in 10 ms);<\/p>\n<li class=\"l\"> Stabilita e introdotta nel linguaggio la supporto <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/378\">dei blocchi di testo<\/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.\n<p>Ad esempio, invece del codice<\/p>\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 15 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>si pu\u00f2 specificare:<\/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 15&#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\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/373\">Rivisitate<\/a><\/noindex> API Legacy DatagramSocket. Le vecchie implementazioni di java.net.DatagramSocket e java.net.MulticastSocket sono state sostituite con un'implementazione moderna, pi\u00f9 semplice da debug e mantenere, oltre a essere compatibile con i flussi virtuali in fase di sviluppo nel progetto. <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/projects\/loom\">Loom<\/a><\/noindex>. Per evitare possibili problemi di compatibilit\u00e0 con il codice esistente, la vecchia implementazione non \u00e8 stata rimossa e pu\u00f2 essere attivata tramite l'opzione jdk.net.usePlainDatagramSocketImpl.\n<li class=\"l\"> Proposta di una seconda implementazione sperimentale <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/375\">corrispondenza con il modello<\/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>Era:<\/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\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/384\">Proposta<\/a><\/noindex> \u0432\u0442\u043e\u0440\u0430\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \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>Questa dichiarazione porter\u00e0 all'aggiunta automatica delle implementazioni dei metodi equals(), hashCode() e toString() oltre al costruttore e ai metodi che controllano la modifica dei dati (getter).<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/383\">Proposto<\/a><\/noindex> il secondo prototipo dell'API Foreign-Memory Access, che consente alle applicazioni Java di accedere in modo sicuro ed efficiente a aree di memoria al di fuori dell'heap Java, manipolando le nuove astrazioni MemorySegment, MemoryAddress e MemoryLayout.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/374\">Disabilitato<\/a><\/noindex> e viene dichiarato obsoleto il meccanismo di ottimizzazione Biased Locking, utilizzato nella HotSpot JVM per ridurre le spese generali legate ai lock. Questo meccanismo \u00e8 diventato irrilevante sui sistemi con istruzioni atomiche fornite dai moderni CPU e troppo complesso da mantenere a causa della sua complessit\u00e0.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/385\">Dichiarato<\/a><\/noindex> obsoleto il meccanismo <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/14\/docs\/specs\/rmi\/activation.html\">RMI Activation<\/a><\/noindex>, che sar\u00e0 rimosso in una delle prossime versioni. Si segnala che RMI Activation \u00e8 obsoleto, declassato a opzione gi\u00e0 in Java 8 e praticamente non utilizzato nella pratica moderna.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/372\">Rimosso<\/a><\/noindex>  motore JavaScript <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=35427\">Nashorn<\/a><\/noindex>, che \u00e8 stato dichiarato obsoleto in Java SE 11.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/381\">Rimossi<\/a><\/noindex> porte per il sistema operativo Solaris e i processori SPARC (Solaris\/SPARC, Solaris\/x64 e Linux\/SPARC). La rimozione di queste porte consentir\u00e0 alla comunit\u00e0 di accelerare lo sviluppo di nuove funzionalit\u00e0 di OpenJDK, senza sprecare tempo a mantenere specificit\u00e0 legate a Solaris e SPARC.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Fonte: <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-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - 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 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\" \/>\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\/it\/blog\/novosti-interneta\/vypusk-java-se-15\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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 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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/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\udd47Rilascio di Java SE 15 | ProHoster","description":"Dopo sei mesi di sviluppo, Oracle ha rilasciato la piattaforma Java SE 15 (Java Platform, Standard Edition 15), il cui riferimento \u00e8 il progetto open source OpenJDK. In Java SE 15 \u00e8 garantita la retrocompatibilit\u00e0 con le versioni precedenti della piattaforma Java, tutti i progetti Java precedentemente scritti funzioneranno senza modifiche sotto la nuova versione. Versioni pronte per l'installazione","canonical_url":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/vypusk-java-se-15","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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 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","og:url":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/94334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=94334"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/94334\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=94334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=94334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=94334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}