Versione di Java SE 18

Dopu sei mesi di sviluppu, Oracle hà liberatu Java SE 18 (Java Platform, Standard Edition 18), chì usa u prughjettu OpenJDK open-source cum'è implementazione di riferimentu. Cù l'eccezzioni di a rimozione di alcune funzioni obsolete, Java SE 18 mantene a cumpatibilità retrocede cù versioni precedenti di a piattaforma Java - a maiò parte di i prughjetti Java scritti prima funzionaranu senza cambiamenti quandu eseguite sottu a nova versione. I build pronti per l'installazione di Java SE 18 (JDK, JRE è Server JRE) sò pronti per Linux (x86_64, AArch64), Windows (x86_64) è macOS (x86_64, AArch64). Sviluppatu da u prughjettu OpenJDK, l'implementazione di riferimentu Java 18 hè cumplettamente open source sottu a licenza GPLv2, cù l'eccezzioni GNU ClassPath chì permettenu ligami dinamichi cù i prudutti cummerciale.

Java SE 18 hè classificatu cum'è una versione di supportu regulare è continuerà à riceve l'aghjurnamenti finu à a prossima versione. A filiera di Support Long Term (LTS) deve esse Java SE 17, chì continuarà à riceve l'aghjurnamenti finu à u 2029. Ricurdemu chì, principiendu cù a liberazione di Java 10, u prugettu hà cambiatu à un novu prucessu di sviluppu, chì implica un ciculu più curtu per a furmazione di novi versioni. A nova funziunalità hè issa sviluppata in un ramu maestru constantemente aghjurnatu, chì include cambiamenti pronti è da quali rami sò ramificati ogni sei mesi per stabilizzà e novi versioni.

I novi funziunalità in Java 18 includenu:

  • Per automaticamente, a codificazione hè UTF-8. L'API Java chì processanu e dati di testu basati nantu à a codificazione di caratteri ora usanu UTF-8 per difettu in tutte e piattaforme, indipendentemente da i paràmetri di u sistema è i paràmetri locali. Per rinvià à u vechju cumpurtamentu, induve a codificazione hè sceltu basatu annantu à u locale di u sistema, pudete aduprà l'opzione "-Dfile.encoding=COMPAT".
  • U pacchettu include u pacchettu com.sun.net.httpserver, chì include l'utilità jwebserver è l'API di a biblioteca cù l'implementazione di un servitore http simplice per serve u cuntenutu staticu (CGI è servlet-like handlers ùn sò micca supportati). U servitore HTTP integratu ùn hè micca ottimizatu per carichi di travagliu è ùn sustene micca u cuntrollu di l'accessu è l'autentificazione, postu chì hè destinatu principarmenti à l'usu in u prucessu di sviluppu per prughjetti di prototipazione, debugging è teste.
  • JavaDoc furnisce supportu per l'etichetta "@snippet" per incrustà esempi di travagliu è frammenti di codice in a documentazione API, induve pudete aduprà strumenti di validazione, evidenziazione di sintassi è integrazione IDE.
  • L'implementazione di l'API java.lang.reflect (Core Reflection), cuncepitu per ottene infurmazioni nantu à i metudi, i campi è i constructori di classi, è ancu l'accessu à a struttura interna di e classi, hè stata riprogettata. L'API java.lang.reflect stessu resta invariata, ma hè avà implementata utilizendu manichi di metudu furniti da u modulu java.lang.invoke, invece di utilizà generatori di bytecode. U cambiamentu ci hà permessu di unificà l'implementazioni di java.lang.reflect è java.lang.invoke, è simplificà u so mantenimentu.
  • Una terza vista previa di l'API Vector hè stata pruposta, chì furnisce funzioni per i calculi vettoriali chì sò eseguiti cù struzzioni vettoriali nantu à i prucessori x86_64 è AArch64 è permettenu l'operazioni per esse applicate simultaneamente à parechji valori (SIMD). A cuntrariu di e capacità furnite in u compilatore HotSpot JIT per l'auto-vectorizazione di l'operazioni scalari, a nova API permette di cuntrollà esplicitamente a vectorizazione per u prucessu di dati paralleli.
  • Aghjunghje l'interfaccia SPI (interfaccia di serviziu di serviziu) per risolve i nomi di l'ospiti è l'indirizzi IP, chì vi permettenu di utilizà resolutori alternativi in ​​java.net.InetAddress chì ùn sò micca ligati à i gestori offerti da u sistema operatore.
  • Una seconda vista previa di l'API di Funzione Estera è Memoria hè furnita, chì permette à l'applicazioni di interagisce cù u codice è e dati fora di u runtime Java. A nova API permette di chjamà in modu efficiente funzioni non-JVM è accede à a memoria non-JVM-managed. Per esempiu, pudete chjamà funzioni da biblioteche spartute esterne è accede à e dati di prucessu senza aduprà JNI.
  • Una seconda implementazione sperimentale di currispundenza di mudelli in espressioni "switch" hè stata aghjunta, chì permette l'usu di mudelli flessibili in etichette "casu" piuttostu cà i valori esatti, chì copre una seria di valori in una volta, per quale prima era necessariu aduprà. catene ingombranti di espressioni "se ... altru". Ughjettu o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • U mecanismu di finalizazione è i so metudi assuciati cum'è Object.finalize (), Enum.finalize (), Runtime.runFinalization () è System.runFinalization () sò stati deprecated è seranu disattivati ​​in una futura liberazione.
  • U ZGC (Z Garbage Collector), SerialGC è ParallelGC garbage collectors supportanu a deduplicazione di fila.

Source: opennet.ru

Add a comment