{"id":99453,"date":"2021-03-17T04:22:35","date_gmt":"2021-03-17T02:22:35","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-java-se-16"},"modified":"2021-03-17T04:22:35","modified_gmt":"2021-03-17T02:22:35","slug":"vypusk-java-se-16","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/vypusk-java-se-16","title":{"rendered":"Versione Java SE 16","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Dopo sei mesi di sviluppo, Oracle ha rilasciato la piattaforma Java SE 16 (Java Platform, Standard Edition 16), la cui implementazione di riferimento utilizza il progetto open source OpenJDK. In Java SE 16 \u00e8 mantenuta la retrocompatibilit\u00e0 con le versioni precedenti della piattaforma Java; tutti i progetti Java precedentemente scritti funzioneranno senza modifiche con l'esecuzione sotto la nuova versione. Le build pronte per l'installazione di Java SE 16 (JDK, JRE e Server JRE) sono disponibili per Linux (x86_64, AArch64), Windows e macOS. L'implementazione di riferimento di Java 16, sviluppata nell'ambito del progetto OpenJDK, \u00e8 completamente open source sotto licenza GPLv2 con eccezioni GNU ClassPath, che consentono il collegamento dinamico con prodotti commerciali.     <\/p>\n<p>Java SE 16 \u00e8 classificato come una release con supporto standard, con aggiornamenti previsti fino al prossimo rilascio. Per una versione a lungo termine (LTS), si consiglia di utilizzare Java SE 11, con aggiornamenti rilasciati fino al 2026. Il prossimo rilascio LTS \u00e8 programmato per settembre 2021. Ricordiamo che a partire dal rilascio di Java 10, il progetto ha adottato un nuovo processo di sviluppo, caratterizzato da cicli di rilascio pi\u00f9 brevi. Ora, le nuove funzionalit\u00e0 vengono sviluppate in un master branch continuamente aggiornato, dove vengono incluse le modifiche gi\u00e0 pronte, e da cui si diramano branch ogni sei mesi per stabilizzare i nuovi rilasci.       <\/p>\n<p>Nella preparazione del nuovo rilascio, lo sviluppo \u00e8 stato trasferito dal sistema di controllo versioni Mercurial a Git e alla piattaforma di collaborazione GitHub. Ci si aspetta che la migrazione migliori le prestazioni delle operazioni con il repository, aumenti l'efficienza di archiviazione, consenta l'accesso alle modifiche per l'intera storia del progetto, migliori il supporto per la revisione del codice e consenta l'uso delle API per l'automazione dei flussi di lavoro. Inoltre, l'uso di Git e GitHub rende il progetto pi\u00f9 attraente per i neofiti e per gli sviluppatori abituati a Git.    <\/p>\n<p>Tra le novit\u00e0 di Java 16 possiamo evidenziare:  <\/p>\n<ul>\n<li class=\"l\"> \u00c8 stato aggiunto un modulo sperimentale jdk.incubator.vector con un'implementazione dell'API Vector, che fornisce funzioni per i calcoli vettoriali eseguiti utilizzando le istruzioni vettoriali dei processori x86_64 e AArch64, permettendo di applicare simultaneamente operazioni a pi\u00f9 valori (SIMD). A differenza delle capacit\u00e0 di auto-vectorizzazione per le operazioni scalari fornite dal compilatore JIT HotSpot, la nuova API consente di gestire esplicitamente la vettorizzazione per l'elaborazione parallela dei dati.\n<li class=\"l\"> Nel codice JDK e VM HotSpot, scritto in C++, \u00e8 consentito utilizzare le funzionalit\u00e0 introdotte dalla specifica C++14. In precedenza, era consentito l'uso degli standard C++98\/03.\n<li class=\"l\"> Nel garbage collector ZGC (Z Garbage Collector), che opera in modalit\u00e0 passiva e riduce al minimo i ritardi causati dalla raccolta dei rifiuti, \u00e8 stata aggiunta la funzionalit\u00e0 di elaborazione parallela degli stack dei thread senza sospendere l'esecuzione dei thread dell'applicazione. In ZGC rimangono ora solo i passaggi che richiedono la sospensione del lavoro, i quali comportano ritardi costanti, solitamente non superiori a poche centinaia di microsecondi.\n<li class=\"l\"> Nelle classi SocketChannel, ServerSocketChannel e java.nio.channels \u00e8 stata aggiunta il supporto per i socket Unix (AF_UNIX).\n<li class=\"l\"> \u00c8 stato implementato un porting per la distribuzione Linux Alpine con la libreria C standard musl, popolare negli ambienti per container, microservizi, sistemi cloud e embedded. Il porting proposto in tali contesti consente di eseguire programmi Java come normali applicazioni. Inoltre, grazie a jlink, \u00e8 possibile rimuovere tutti i moduli non utilizzati e creare un ambiente minimo sufficiente per eseguire l'applicazione, permettendo di generare immagini compatte specifiche per applicazioni particolari.\n<li class=\"l\"> \u00c8 stato implementato il meccanismo Elastic Metaspace, che ottimizza le operazioni di allocazione e restituzione della memoria occupata dai metadati delle classi (metaspace) nella JVM HotSpot. L'uso di Elastic Metaspace riduce la frammentazione della memoria, diminuisce il sovraccarico nel caricatore di classi e migliora le prestazioni delle applicazioni server a lungo termine grazie a un pi\u00f9 rapido rilascio della memoria occupata dai metadati delle classi non utilizzati all'operativo di sistema. Per scegliere la modalit\u00e0 di rilascio della memoria dopo lo scarico delle classi, \u00e8 stata proposta l'opzione &#171;-XX:MetaspaceReclaimPolicy=(balanced|aggressive|none)&#187;.\n<li class=\"l\"> Aggiunto il porto JDK per i sistemi Windows che operano su hardware con processori basati sull'architettura AArch64.\n<li class=\"l\"> Proposto un terzo 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\"> Realizzato un'API sperimentale Foreign Linker, che fornisce accesso da Java a codice nativo. Insieme all'API Foreign-Memory, questa nuova interfaccia semplifica notevolmente la creazione di wrapper per librerie condivise comuni.\n<li class=\"l\"> Aggiunta l'utilit\u00e0 jpackage, che consente di creare pacchetti per applicazioni Java autoconclusive. L'utilit\u00e0 si basa su javapackager di JavaFX e permette di generare pacchetti in formati nativi per diverse piattaforme (msi e exe per Windows, pkg e dmg per macOS, deb e rpm per Linux). I pacchetti includono tutte le dipendenze necessarie.\n<li class=\"l\"> \u00c8 attivata di default la rigorosa incapsulazione di tutti gli elementi interni del JDK, ad eccezione delle API critiche, come sun.misc.Unsafe. Il valore dell'opzione &#171;&#8212;illegal-access&#187; \u00e8 ora impostato di default su &#171;deny&#187; invece di &#171;permit&#187;, il che porter\u00e0 a bloccare i tentativi di accesso dal codice alla maggior parte delle classi, metodi e campi interni. Per aggirare il limite, si deve usare l'opzione &#171;&#8212;illegal-access=permit&#187;.\n<li class=\"l\"> \u00c8 stata stabilizzata l'implementazione del confronto con il modello nell'operatore \u00abinstanceof\u00bb, che consente di definire immediatamente una variabile locale per accedere al valore verificato. Ad esempio, \u00e8 possibile scrivere subito \u00abif (obj instanceof String s &amp;&amp; s.length() &gt; 5) {.. s.contains(..) ..}\u00bb senza dover esplicitamente definire \u00abString s = (String) obj\u00bb. Prima: if (obj instanceof Group) { Group group = (Group) obj; var entries = group.getEntries(); } Ora si pu\u00f2 fare a meno della definizione \u00abGroup group = (Group) obj\u00bb: if (obj instanceof Group group) { var entries = group.getEntries(); }\n<li class=\"l\"> \u00c8 stata stabilizzata l'implementazione della parola chiave \u00abrecord\u00bb, che fornisce una forma compatta per definire classi, permettendo di evitare la definizione esplicita di vari diversi metodi di basso livello, come equals(), hashCode() e toString(), nei casi in cui i dati vengono memorizzati solo nei campi, il cui comportamento non cambia. Quando in una classe vengono utilizzate implementazioni di tipo dei metodi equals(), hashCode() e toString(), \u00e8 possibile fare a meno della loro definizione esplicita: public record BankTransaction(LocalDate date, double amount, String description) {}\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\"> \u00c8 stata proposta una seconda bozza preliminare di classi e interfacce sigillate (&#171;sealed&#187;), che non possono essere utilizzate da altre classi e interfacce per l'ereditariet\u00e0, l'estensione o la ridefinizione dell'implementazione. Le classi sigillate offrono anche un modo pi\u00f9 dichiarativo di limitare l'uso della superclasse, rispetto ai modificatori di accesso, basato su un'esplicita enumerazione delle sottoclassi autorizzate all'estensione.         package com.example.geometry;       public sealed class Shape          permits com.example.polar.Circle,                  com.example.quad.Rectangle,                  com.example.quad.simple.Square {&#8230;}        <\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=54769\">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 16 (Java Platform, Standard Edition 16), \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 16 \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-99453","post","type-post","status-publish","format-standard","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.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 Java SE 16 (Java Platform, Standard Edition 16), \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 16 \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-16\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\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 16 | 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 16 (Java Platform, Standard Edition 16), \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 16 \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-16\" \/>\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=\"2021-03-17T02:22:35+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-03-17T02:22:35+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 16 | ProHoster","description":"Dopo sei mesi di sviluppo, Oracle ha rilasciato la piattaforma Java SE 16 (Java Platform, Standard Edition 16), la cui implementazione di riferimento utilizza il progetto open source OpenJDK. In Java SE 16 \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. Build pronte per l'installazione","canonical_url":"https:\/\/prohoster.info\/it\/blog\/novosti-interneta\/vypusk-java-se-16","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 16 | 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 16 (Java Platform, Standard Edition 16), \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 16 \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-16","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":"2021-03-17T02:22:35+00:00","article:modified_time":"2021-03-17T02:22:35+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"99453","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-03-17 02:50:53","updated":"2022-09-27 17:21:53","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/99453","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=99453"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/99453\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=99453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=99453"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=99453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}