Java SE 17 tso tawm

Tom qab rau lub hlis ntawm txoj kev loj hlob, Oracle tso tawm Java SE 17 (Java Platform, Standard Edition 17), uas siv OpenJDK qhib qhov project raws li nws siv siv. Nrog rau qhov tshwj xeeb ntawm kev tshem tawm qee qhov uas tsis siv lawm, Java SE 17 tswj kev rov qab sib raug zoo nrog cov kev tshaj tawm yav dhau los ntawm Java platform - feem ntau cov ntawv sau yav dhau los Java yuav ua haujlwm yam tsis muaj kev hloov pauv thaum khiav hauv qab version tshiab. Npaj-rau-nruab tsim ntawm Java SE 17 (JDK, JRE thiab Server JRE) yog npaj rau Linux (x86_64, AArch64), Windows (x86_64) thiab macOS (x86_64, AArch64). Tsim los ntawm OpenJDK qhov project, qhov kev siv Java 17 yog qhov qhib tag nrho raws li daim ntawv tso cai GPLv2, nrog rau GNU ClassPath kev zam pub rau kev sib txuas nrog cov khoom lag luam.

Java SE 17 yog cais raws li Kev Pabcuam Sijhawm Ntev (LTS) tso tawm, uas yuav txuas ntxiv tau txais kev hloov tshiab mus txog xyoo 2029. Kev hloov kho tshiab rau yav dhau los Java 16 qhov tseem ceeb tshaj tawm tau raug txiav tawm. Yav dhau los LTS ceg ntawm Java 11 yuav txhawb nqa txog 2026. Qhov kev tso tawm LTS tom ntej yog teem rau lub Cuaj Hli 2024. Cia peb nco ntsoov koj tias pib nrog kev tso tawm ntawm Java 10, qhov project tau hloov mus rau txoj kev txhim kho tshiab, ua rau lub voj voog luv luv rau kev tsim tawm tshiab. Kev ua haujlwm tshiab tam sim no tau tsim nyob rau hauv ib qho kev hloov kho tshiab tas li, uas suav nrog cov kev hloov pauv uas tau npaj tseg thiab los ntawm cov ceg ntoo twg tau tawg txhua rau lub hlis kom ruaj khov rau kev tso tawm tshiab.

Cov yam ntxwv tshiab hauv Java 17 suav nrog:

  • Kev sim ua piv txwv ntawm cov qauv sib piv hauv "hloov" cov lus qhia, uas tso cai rau siv tsis muaj nuj nqis nyob rau hauv "cov ntaub ntawv" cov ntawv, tab sis cov qauv hloov pauv tau npog cov txiaj ntsig ntawm ib zaug, uas yav tas los yuav tsum tau siv cumbersome. chains ntawm "yog...lse" kab lus. Tsis tas li ntawd, "hloov" muaj peev xwm los lis NULL qhov tseem ceeb. Yam khoom o = 123L; String formatted = hloov (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("ntev %d", l); case Ob chav d -> String.format("ob npaug %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • Kev txhawb nqa ruaj khov rau cov chav kawm kaw thiab cov kev sib txuas, uas tsis tuaj yeem siv los ntawm lwm cov chav kawm thiab kev sib cuam tshuam los ua qub txeeg qub teg, txuas ntxiv, lossis hla dhau qhov kev siv. Cov chav kawm kaw kuj tseem muab txoj hauv kev tshaj tawm ntau dua los txwv kev siv cov superclass tshaj li kev nkag mus rau cov hloov pauv, raws li qhia meej txog cov subclasses tso cai rau txuas ntxiv. pob com.example.geometry; public sealed class Shape tso cai com.example.polar.Circle, com.example.quad.Rectangle, com.example.quad.simple.Square {…}
  • Kev saib ua ntej thib ob ntawm Vector API tau npaj tseg, uas muab cov haujlwm rau kev suav vector uas tau ua tiav siv cov lus qhia vector ntawm x86_64 thiab AArch64 processors thiab tso cai rau cov haujlwm ua haujlwm ib txhij rau ntau qhov txiaj ntsig (SIMD). Tsis zoo li lub peev xwm muab rau hauv HotSpot JIT compiler rau nws pib-vectorization ntawm kev ua haujlwm scalar, API tshiab ua rau nws muaj peev xwm tswj hwm vectorization rau cov ntaub ntawv sib luag.
  • Ntxiv qhov saib ua ntej ntawm Txawv Teb Chaws Ua Haujlwm & Nco API, uas tso cai rau cov ntawv thov cuam tshuam nrog cov lej thiab cov ntaub ntawv sab nraud Java runtime. API tshiab tso cai rau koj kom ua tau zoo hu tsis yog-JVM lub luag haujlwm thiab nkag mus tsis yog-JVM-tswj nco. Piv txwv li, koj tuaj yeem hu xov tooj los ntawm cov tsev qiv ntawv sab nraud thiab nkag mus rau cov ntaub ntawv txheej txheem yam tsis siv JNI.
  • Lub macOS rendering engine uas powers lub Java 2D API, uas nyob rau hauv lem powers lub Swing API, tau raug yoog mus siv cov hlau graphics API. Lub macOS platform tseem siv OpenGL los ntawm lub neej ntawd, thiab ua kom muaj kev txhawb nqa hlau yuav tsum tau teeb tsa "-Dsun.java2d.metal=true" thiab tsawg kawg khiav macOS 10.14.x.
  • Ntxiv qhov chaw nres nkoj rau macOS / AArch64 platform (Apple computers raws li Apple M1 chips tshiab). Ib qho tshwj xeeb ntawm qhov chaw nres nkoj yog kev txhawb nqa rau W^X (Sau XOR Execute) lub cim xeeb tiv thaiv mechanism, uas cov nplooj ntawv nco tsis tuaj yeem nkag mus rau ib txhij rau kev sau ntawv thiab ua tiav. (Cov lej tuaj yeem raug tua tsuas yog tom qab kev sau ntawv raug kaw, thiab sau ntawv mus rau nplooj ntawv nco tau tsuas yog tom qab ua tiav raug kaw).
  • Rov qab mus rau kev siv nkaus xwb strictfp semantics rau ntab taw tes qhia. Kev them nyiaj yug rau "default" semantics, muaj txij li thaum tso tawm ntawm Java 1.2, tau raug txiav tawm, suav nrog kev ua haujlwm yooj yim rau kev ua haujlwm nrog cov laus x87 lej coprocessors (tom qab qhov tshwm sim ntawm SSE2 cov lus qhia, qhov xav tau ntxiv semantics ploj lawm).
  • Cov hom tshiab ntawm kev sib cuam tshuam rau pseudorandom tus lej generators tau raug siv, thiab cov algorithms ntxiv tau siv los ua kom zoo dua ntawm cov lej random. Cov ntawv thov raug muab lub sijhawm los xaiv cov algorithm los tsim cov lej pseudorandom. Txhim kho kev txhawb nqa rau tsim cov khoom random ntws.
  • Kev nruj nruj ntawm txhua qhov JDK sab hauv, tshwj tsis yog cov APIs tseem ceeb xws li sun.misc.Unsafe. nruj encapsulation thaiv kev sim los ntawm cov cai nkag mus rau hauv chav kawm, txoj hauv kev, thiab teb. Yav dhau los, nruj encapsulation hom tuaj yeem raug kaw siv qhov "--illegal-access=permit" kev xaiv, tab sis tam sim no tau deprecated. Cov ntawv thov uas xav tau kev nkag mus rau cov chav kawm sab hauv, txoj hauv kev, thiab cov teb yuav tsum tau hais meej meej lawv siv qhov kev xaiv --add-opens lossis Add-Opens attribute hauv cov ntaub ntawv manifest.
  • Cov ntawv thov raug muab lub peev xwm los txhais cov ntaub ntawv deserialization lim, uas tuaj yeem ua cov ntsiab lus-rhiab thiab xaiv dynamically raws li cov haujlwm tshwj xeeb deserialization. Cov lim dej teev tseg siv tau rau tag nrho lub tshuab virtual (JVM-wide), i.e. npog tsis tsuas yog daim ntawv thov nws tus kheej, tab sis kuj yog cov tsev qiv ntawv thib peb uas siv hauv daim ntawv thov.
  • Swing tau ntxiv javax.swing.filechooser.FileSystemView.getSystemIcon txoj kev thauj cov cim loj los txhim kho UI ntawm High DPI cov ntxaij vab tshaus.
  • java.net.DatagramSocket API muab kev txhawb nqa rau kev txuas mus rau Multicast pawg yam tsis tas yuav tsum muaj cais java.net.MulticastSocket API.
  • Lub IGV (Ideal Graph Visualizer) cov khoom siv tau raug txhim kho, muab kev sib tham sib pom ntawm qhov nruab nrab tus lej sawv cev hauv HotSpot VM C2 JIT compiler.
  • Hauv JavaDoc, los ntawm kev sib piv nrog javac compiler, thaum muaj qhov yuam kev yog qhov tso tawm, tus naj npawb ntawm cov kab teeb meem hauv cov ntaub ntawv thiab qhov chaw ntawm qhov yuam kev tam sim no qhia.
  • Ntxiv cov cuab yeej native.encoding, xav txog lub npe ntawm lub cim cim encoding (UTF-8, koi8-r, cp1251, thiab lwm yam).
  • Lub java.time.InstantSource interface tau ntxiv lawm, tso cai rau lub sijhawm ua haujlwm yam tsis muaj kev siv rau thaj tsam sijhawm.
  • Ntxiv java.util.HexFormat API rau kev hloov mus rau hexadecimal sawv cev thiab rov ua dua.
  • Ib hom blackhole tau ntxiv rau lub compiler, uas cuam tshuam cov kev ua haujlwm tshem tawm cov lej tuag, uas tuaj yeem siv tau thaum ua qhov kev xeem ua haujlwm.
  • Ntxiv "-Xlog: async" kev xaiv rau Runtime los sau cov cav hauv hom asynchronous.
  • Thaum tsim kev sib txuas ruaj ntseg, TLS 1.3 tau qhib los ntawm lub neej ntawd (yav dhau los TLS 1.2 tau siv).
  • Cov yav tas los tshaj tawm Applet API (java.applet.Applet*, javax.swing.JApplet), uas tau siv los khiav Java daim ntawv thov hauv browser, tau tsiv mus rau qeb ntawm slated rau kev tshem tawm (poob qhov tseeb tom qab qhov kawg ntawm kev txhawb nqa. rau Java plugin rau browsers).
  • Tus Thawj Saib Xyuas Kev Ruaj Ntseg, uas tau ntev txij li poob nws qhov cuam tshuam thiab ua rau tsis lees paub tom qab qhov kawg ntawm kev txhawb nqa rau browser plugin, tau tsiv mus rau qeb ntawm cov uas tau teem tseg rau kev tshem tawm.
  • RMI Activation mechanism tau raug tshem tawm, uas yog outdated, relegated rau qeb ntawm ib qho kev xaiv nyob rau hauv Java 8 thiab yuav luag tsis siv nyob rau hauv niaj hnub xyaum.
  • Ib qho kev sim compiler uas txhawb nqa JIT (tsuas yog-hauv-lub sijhawm) rau kev sib sau ua ke ntawm Java code rau HotSpot JVM, nrog rau hom kev cia siab ua ke (AOT, ua ntej-ntawm-lub sijhawm) ntawm cov chav kawm rau hauv tshuab code ua ntej pib lub tshuab virtual , tau raug tshem tawm ntawm SDK. Lub compiler tau sau hauv Java thiab raws li kev ua haujlwm ntawm Graal project. Nws tau raug sau tseg tias kev saib xyuas compiler yuav tsum tau ua haujlwm ntau, uas tsis raug cai thaum tsis muaj kev thov los ntawm cov neeg tsim khoom.

Tau qhov twg los: opennet.ru

Ntxiv ib saib