Ang pagpagawas sa Java SE 18

Pagkahuman sa unom ka bulan nga pag-uswag, gipagawas sa Oracle ang Java SE 18 (Java Platform, Standard Edition 18), nga naggamit sa open-source nga OpenJDK nga proyekto ingon usa ka pagpatuman sa pakisayran. Gawas sa pagtangtang sa pipila ka karaan nga mga bahin, ang Java SE 18 nagmintinar sa atrasado nga pagkaangay sa mga nauna nga pagpagawas sa Java platform - kadaghanan sa mga nasulat kaniadto nga mga proyekto sa Java molihok nga wala’y mga pagbag-o kung gipadagan sa ilawom sa bag-ong bersyon. Andam-sa-instalar nga pagtukod sa Java SE 18 (JDK, JRE ug Server JRE) giandam alang sa Linux (x86_64, AArch64), Windows (x86_64) ug macOS (x86_64, AArch64). Gipalambo sa proyekto sa OpenJDK, ang pagpatuman sa Java 18 nga reperensiya hingpit nga bukas nga tinubdan ubos sa lisensya sa GPLv2, nga adunay mga eksepsiyon sa GNU ClassPath nga nagtugot sa dinamikong pagsumpay sa mga komersyal nga produkto.

Ang Java SE 18 giklasipikar ingon usa ka regular nga pagpagawas sa suporta ug magpadayon nga makadawat mga update hangtod sa sunod nga pagpagawas. Ang sanga sa Long Term Support (LTS) kinahanglan nga Java SE 17, nga magpadayon nga makadawat mga update hangtod sa 2029. Pahinumdum kami kanimo nga sugod sa pagpagawas sa Java 10, ang proyekto gibalhin sa usa ka bag-ong proseso sa pag-uswag, nga nagpasabut nga usa ka mas mubo nga siklo alang sa pagporma sa mga bag-ong pagpagawas. Ang bag-ong kagamitan naugmad na karon sa usa ka kanunay nga gi-update nga master branch, nga naglakip sa andam na nga mga pagbag-o ug gikan diin ang mga sanga gisanga matag unom ka bulan aron mapalig-on ang mga bag-ong pagpagawas.

Ang mga bag-ong bahin sa Java 18 naglakip sa:

  • Ang default encoding mao ang UTF-8. Ang mga Java API nga nagproseso sa datos sa teksto base sa pag-encode sa karakter mogamit na karon sa UTF-8 nga default sa tanang mga plataporma, bisan unsa pa ang mga setting sa sistema ug mga setting sa lokal. Aron mobalik sa daan nga kinaiya, diin ang pag-encode gipili base sa lokal nga sistema, mahimo nimong gamiton ang opsyon nga "-Dfile.encoding=COMPAT".
  • Ang package naglakip sa com.sun.net.httpserver package, nga naglakip sa jwebserver utility ug library API uban sa pagpatuman sa usa ka yano nga http server alang sa pag-alagad sa static nga sulod (CGI ug servlet-like handler dili suportado). Ang built-in nga HTTP server wala ma-optimize alang sa mga workloads ug wala nagsuporta sa access control ug authentication, tungod kay kini gitumong sa panguna sa paggamit sa proseso sa pagpalambo alang sa prototyping, debugging ug testing nga mga proyekto.
  • Naghatag ang JavaDoc og suporta para sa tag nga "@snippet" aron ma-embed ang mga nagtrabaho nga mga pananglitan ug mga snippet sa code sa dokumentasyon sa API, diin mahimo nimong gamiton ang mga himan sa pag-validate, pag-highlight sa syntax, ug panagsama sa IDE.
  • Ang pagpatuman sa java.lang.reflect API (Core Reflection), nga gidisenyo aron makakuha og impormasyon bahin sa mga pamaagi, field ug class constructors, ingon man ang access sa internal structure sa mga klase, gidesinyo pag-usab. Ang java.lang.reflect API mismo nagpabilin nga wala mausab, apan karon gipatuman gamit ang mga pamaagi sa pagdumala nga gihatag sa java.lang.invoke module, imbes nga gamiton ang bytecode generators. Ang pagbag-o nagtugot kanamo sa paghiusa sa mga pagpatuman sa java.lang.reflect ug java.lang.invoke, ug pasimplehon ang ilang pagmentinar.
  • Gisugyot ang ikatulo nga preview sa Vector API, nga naghatag mga function alang sa mga kalkulasyon sa vector nga gipatuman gamit ang mga panudlo sa vector sa x86_64 ug AArch64 nga mga processor ug gitugotan ang mga operasyon nga magamit nga dungan sa daghang mga kantidad (SIMD). Dili sama sa mga kapabilidad nga gihatag sa HotSpot JIT compiler para sa auto-vectorization sa scalar operations, ang bag-ong API nagpaposible nga klarong makontrol ang vectorization para sa parallel data processing.
  • Gidugang ang interface sa SPI (interface sa service-provider) para sa pagresolba sa mga host name ug mga IP address, nga magtugot kanimo sa paggamit sa alternatibong mga solver sa java.net.InetAddress nga wala mahigot sa mga handler nga gitanyag sa operating system.
  • Gihatag ang ikaduhang preview sa Foreign Function & Memory API, nga nagtugot sa mga aplikasyon nga makig-interact sa code ug data sa gawas sa Java runtime. Ang bag-ong API nagtugot kanimo sa episyente nga pagtawag sa mga non-JVM functions ug pag-access sa non-JVM-managed memory. Pananglitan, mahimo nimong tawagan ang mga gimbuhaton gikan sa gawas nga gipaambit nga mga librarya ug pag-access sa datos sa proseso nga wala gigamit ang JNI.
  • Ang ikaduha nga eksperimento nga pagpatuman sa pattern matching sa "switch" nga mga ekspresyon gidugang, nga nagtugot sa paggamit sa mga flexible pattern sa "case" nga mga label imbes sa eksaktong mga bili, nga naglangkob sa usa ka serye sa mga bili sa usa ka higayon, nga kaniadto gikinahanglan nga gamiton. hago nga mga kadena sa β€œkon...lain pa” nga mga ekspresyon. Butang o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); kaso Long l -> String.format("taas nga %d", l); kaso Doble d -> String.format("doble %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • Ang mekanismo sa finalization ug ang kaubang mga pamaagi sama sa Object.finalize(), Enum.finalize(), Runtime.runFinalization() ug System.runFinalization() wala na gamita ug dili na magamit sa umaabot nga pagpagawas.
  • Ang ZGC (Z Garbage Collector), SerialGC, ug ParallelGC garbage collectors nagsuporta sa row deduplication.

Source: opennet.ru

Idugang sa usa ka comment