Java SE 18 lage

Apre sis mwa nan devlopman, Oracle te pibliye Java SE 18 (Java Platform, Standard Edition 18), ki sèvi ak pwojè OpenJDK sous louvri kòm yon aplikasyon referans. Ak eksepsyon de retire kèk karakteristik demode, Java SE 18 kenbe konpatibilite bak ak degaje anvan yo nan platfòm Java a - pifò pwojè Java yo te ekri yo pral travay san chanjman lè yo kouri anba nouvo vèsyon an. Pare-pou-enstale bati nan Java SE 18 (JDK, JRE ak sèvè JRE) yo prepare pou Linux (x86_64, AArch64), Windows (x86_64) ak macOS (x86_64, AArch64). Pwojè OpenJDK devlope, aplikasyon referans Java 18 la se yon sous totalman louvri anba lisans GPLv2, ak eksepsyon GNU ClassPath ki pèmèt lyen dinamik ak pwodwi komèsyal yo.

Java SE 18 klase kòm yon lage sipò regilye epi li pral kontinye resevwa mizajou jiska pwochen lage a. Branch Sipò Alontèm (LTS) ta dwe Java SE 17, ki pral kontinye resevwa mizajou jiska 2029. Se pou nou raple w ke kòmanse ak lage nan Java 10, pwojè a chanje nan yon nouvo pwosesis devlopman, ki vle di yon sik ki pi kout pou fòmasyon nan nouvo degaje. Nouvo fonksyonalite kounye a devlope nan yon sèl branch mèt toujou ap mete ajou, ki gen ladann chanjman ki pare yo epi ki soti nan ki branch yo branch chak sis mwa estabilize nouvo degaje.

Nouvo karakteristik nan Java 18 yo enkli:

  • Pa default, kodaj la se UTF-8. API Java ki trete done tèks ki baze sou kodaj karaktè pral kounye a itilize UTF-8 pa default sou tout platfòm, kèlkeswa paramèt sistèm ak paramèt lokal yo. Pou retounen nan ansyen konpòtman an, kote kodaj la chwazi dapre lokal sistèm lan, ou ka itilize opsyon "-Dfile.encoding=COMPAT".
  • Pake a gen ladan pake com.sun.net.httpserver, ki gen ladann jwebserver sèvis piblik ak API bibliyotèk ak aplikasyon yon senp sèvè http pou sèvi kontni estatik (CGI ak servlet-like handlers yo pa sipòte). Sèvè HTTP entegre a pa optimize pou chaj travay epi li pa sipòte kontwòl aksè ak otantifikasyon, paske li vize sitou pou itilize nan pwosesis devlopman pou pwototip, debogaj ak tès pwojè yo.
  • JavaDoc bay sipò pou tag "@snippet" pou entegre egzanp k ap travay ak fragments kòd nan dokiman API, kote ou ka itilize zouti validation, entegrasyon sentaks, ak entegrasyon IDE.
  • Aplikasyon java.lang.reflect API (Core Reflection), ki fèt pou jwenn enfòmasyon sou metòd, jaden ak konstrukteur klas yo, ansanm ak aksè nan estrikti entèn klas yo, yo te reamenaje. API java.lang.reflect nan tèt li rete san okenn chanjman, men kounye a aplike lè l sèvi avèk manch metòd ki bay nan modil la java.lang.invoke, olye pou yo itilize dèlko bytecode. Chanjman an te pèmèt nou inifye aplikasyon java.lang.reflect ak java.lang.invoke, epi senplifye antretyen yo.
  • Yo te pwopoze yon twazyèm aperçu nan Vector API a, ki bay fonksyon pou kalkil vektè ke yo egzekite lè l sèvi avèk enstriksyon vektè sou processeurs x86_64 ak AArch64 epi ki pèmèt operasyon yo dwe aplike ansanm nan plizyè valè (SIMD). Kontrèman ak kapasite yo bay nan HotSpot JIT du pou oto-vectorization nan operasyon eskalè, nouvo API a fè li posib pou kontwole klèman vektorizasyon pou pwosesis done paralèl.
  • Te ajoute koòdone SPI (koòdone sèvis-founisè) pou rezoud non lame ak adrès IP, sa ki pèmèt ou sèvi ak rezolve altènatif nan java.net.InetAddress ki pa mare ak moun kap okipe sistèm operasyon an ofri.
  • Yo bay yon dezyèm aperçu API Fonksyon Etranjè ak memwa, sa ki pèmèt aplikasyon yo kominike avèk kòd ak done andeyò ègzekutabl Java a. Nouvo API a pèmèt ou byen rele fonksyon ki pa JVM epi jwenn aksè nan memwa ki pa jere JVM. Pou egzanp, ou ka rele fonksyon ki soti nan bibliyotèk ekstèn pataje ak aksè done pwosesis san yo pa itilize JNI.
  • Yon dezyèm aplikasyon eksperimantal matche modèl nan ekspresyon "chanjman" yo te ajoute, ki pèmèt itilizasyon modèl fleksib nan etikèt "ka" olye ke valè egzak, ki kouvri yon seri de valè alafwa, pou ki te deja nesesè yo itilize. chenn ankonbran nan ekspresyon "si ... lòt bagay". Objè o = 123L; String fòma = switch (o) { ka Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); ka Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • Mekanis finalizasyon an ak metòd ki asosye li yo tankou Object.finalize (), Enum.finalize (), Runtime.runFinalization () ak System.runFinalization () yo te obsolète epi yo pral enfim nan yon lage nan lavni.
  • ZGC (Z Garbage Collector), SerialGC, ak Pèseptè fatra ParallelGC sipòte deduplication ranje.

Sous: opennet.ru

Add nouvo kòmantè