Java SE 15 tso tawm

Tom qab rau lub hlis ntawm txoj kev loj hlob, Oracle tso tawm platform JavaSE 15 (Java Platform, Standard Edition 15), qhov qhib qhov project OpenJDK yog siv los ua kev siv siv. Java SE 15 tswj kev rov qab sib raug zoo nrog kev tshaj tawm yav dhau los ntawm Java platform; tag nrho cov ntawv sau yav dhau los Java yuav ua haujlwm yam tsis muaj kev hloov pauv thaum pib hauv qab version tshiab. Npaj-rau-nruab Java SE 15 tsim (JDK, JRE thiab Server JRE) npaj rau Linux (x86_64), Windows thiab macOS. Cov ntaub ntawv siv tau tsim los ntawm OpenJDK qhov project Java 15 yog qhov qhib tag nrho raws li daim ntawv tso cai GPLv2, nrog rau GNU ClassPath kev zam uas tso cai rau kev sib txuas nrog cov khoom lag luam.

Java SE 15 tau muab cais ua qhov kev txhawb nqa dav dav thiab yuav tau txais kev hloov kho mus ntxiv kom txog thaum tso tawm tom ntej. Lub Sijhawm Txhawb Lub Sijhawm Ntev (LTS) ceg yuav tsum yog Java SE 11, uas yuav txuas ntxiv tau txais kev hloov tshiab mus txog xyoo 2026. Yav dhau los LTS ceg ntawm Java 8 yuav raug txhawb kom txog rau thaum lub Kaum Ob Hlis 2020. Qhov kev tso tawm LTS tom ntej yog teem rau lub Cuaj Hli 2021. 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 uas tau txiav txhua rau rau lub hlis kom ruaj khov rau kev tso tawm tshiab.

Ntawm qhov kev tsim kho tshiab Java 15 tau Mark:

  • Ua-hauv kev txhawb nqa rau EdDSA (Edwards-Curve Digital Signature Algorithm) digital kos npe tsim algorithm RFC 8032). Qhov kev thov EdDSA tsis yog nyob ntawm cov cuab yeej kho vajtse, muaj kev tiv thaiv los ntawm kev tawm tsam sab nraud (lub sijhawm ua haujlwm tas li ntawm txhua qhov kev suav tau lees paub) thiab ua haujlwm sai dua li ECDSA kev siv uas twb muaj lawm sau ua lus C, nrog tib qib kev tiv thaiv. Piv txwv li, EdDSA siv lub elliptic nkhaus nrog 126-ntsis qhov tseem ceeb ua pov thawj zoo ib yam li ECDSA nrog secp256r1 elliptic nkhaus thiab 128-ntsis qhov tseem ceeb.
  • Ntxiv kev txhawb nqa 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 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 meej 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 {…}

  • Ntxiv kev txhawb nqa rau cov chav kawm zais uas tsis tuaj yeem siv ncaj qha los ntawm bytecode ntawm lwm chav kawm. Lub hom phiaj tseem ceeb ntawm cov chav kawm zais yog siv rau hauv lub moj khaum uas dynamically tsim cov chav kawm ntawm runtime thiab siv lawv indirectly, los ntawm xav txog. Cov chav kawm zoo li no feem ntau muaj lub voj voog ntawm lub neej tsawg, yog li kev tswj hwm lawv kom nkag tau los ntawm cov chav kawm uas tau tsim tawm tsis raug cai thiab tsuas yog ua rau muaj kev nco ntau ntxiv. Cov chav kawm zais kuj tshem tawm qhov xav tau rau qhov tsis yog tus qauv API sun.misc.Unsafe::defineAnonymousClass, uas yog slated rau kev tshem tawm yav tom ntej.
  • ZGC (Z Khib Nyiab Collector) cov khoom khib nyiab tau ruaj khov thiab tau lees paub tias yog npaj rau kev siv dav. ZGC ua haujlwm nyob rau hauv hom passive, txo qis latency vim kev khaws cov khib nyiab ntau li ntau tau (lub sijhawm ua haujlwm thaum siv ZGC tsis pub tshaj 10 ms.) thiab tuaj yeem ua haujlwm nrog ob qho tib si me thiab loj heaps, xws li qhov loj ntawm ntau pua megabytes mus rau ntau terabytes.
  • Stabilized thiab pom tau npaj rau kev siv dav dav
    khib nyiab Shenandoah, ua hauj lwm nrog tsawg kawg ncua sij hawm (Low-Pause-Time khib nyiab Collector). Shenandoah tau tsim los ntawm Red Hat thiab yog qhov tseem ceeb rau nws txoj kev siv lub algorithm uas txo lub sij hawm nyob rau hauv lub tsev khaws khoom khib nyiab los ntawm kev khiav tu nyob rau hauv parallel nrog rau kev tua ntawm Java daim ntaub ntawv. Qhov loj ntawm qhov ncua sij hawm qhia los ntawm tus neeg khaws khib nyiab yog kwv yees tau thiab tsis nyob ntawm qhov loj ntawm cov heap, i.e. rau heaps ntawm 200 MB thiab 200 GB qhov qeeb yuav zoo ib yam (txhob tawm los tshaj 50 ms thiab feem ntau tsis pub dhau 10 ms);

  • Kev them nyiaj yug tau ruaj khov thiab nkag mus rau hauv cov lus ntawv blocks - ib daim ntawv tshiab ntawm cov kab ntawv uas tso cai rau koj suav nrog ntau cov kab ntawv cov ntaub ntawv hauv qhov chaws tsis tas siv cov cim khiav tawm thiab khaws cia cov ntawv qub formatting hauv qhov thaiv. Lub block yog framed los ntawm peb ob nqe lus.

    Piv txwv li, tsis yog cov cai

    String html = " Β» +
    "\n\t" + " Β» +
    "\n\t\t" + " \"Java 1 is here!\" Β» +
    "\n\t" + " Β» +
    "\n" + " ";

    koj tuaj yeem qhia meej:

    String html = """


    Β» Java 1\
    nyob ntawm no!

    """";

  • Rov ua dua Legacy DatagramSocket API. Cov kev siv qub ntawm java.net.DatagramSocket thiab java.net.MulticastSocket tau raug hloov nrog kev siv niaj hnub uas yooj yim dua rau kev debug thiab tswj, thiab tseem sib xws nrog cov kwj virtual tsim nyob rau hauv qhov project. Loom. Nyob rau hauv rooj plaub uas muaj peev xwm ua tsis tau nrog cov cai uas twb muaj lawm, qhov kev siv qub tsis raug tshem tawm thiab tuaj yeem siv tau siv cov kev xaiv jdk.net.usePlainDatagramSocketImpl.
  • Qhov kev sim thib ob tau thov qauv txuam nyob rau hauv "piv txwv li" tus neeg teb xov tooj, uas tso cai rau koj tam sim ntawd txhais ib qho kev sib txawv hauv zos kom nkag mus rau tus nqi txheeb xyuas. Piv txwv li, koj tuaj yeem sau tam sim "yog tias (obj piv txwv ntawm String s && s.length() > 5) {.. s.contains (..) ..}" yam tsis tau txhais meej meej "String s = (String) obj".

    Yog:

    yog tias (obj piv txwv ntawm Pawg) {
    pab pawg = (Group)obj;
    var entries = group.getEntry();
    }

    Tam sim no koj tuaj yeem ua yam tsis muaj lub ntsiab lus "Pab pawg = (Group) obj":

    yog (obj piv txwv ntawm pab pawg neeg) {
    var entries = group.getEntry();
    }

  • Tswv yim kev sim thib ob ntawm kev siv lo lus tseem ceeb "cov ntaub ntawv", uas muab ib daim ntawv cog lus rau kev txhais cov chav kawm, tso cai rau koj kom tsis txhob qhia meej meej txog ntau yam qib qis xws li sib npaug(), hashCode() thiab toString() nyob rau hauv rooj plaub uas cov ntaub ntawv tsuas yog khaws cia hauv thaj chaw uas nws tus cwj pwm tsis hloov. Thaum ib chav kawm siv cov qauv siv ntawm qhov sib npaug (), hashCode() thiab toString() txoj kev, nws tuaj yeem ua yam tsis muaj lawv cov ntsiab lus meej:

    pej xeem cov ntaub ntawv BankTransaction (LocalDate hnub tim,
    ob tus nqi
    Kab lus piav qhia) {}

    Cov lus tshaj tawm no yuav cia li ntxiv cov kev siv ntawm qhov sib npaug (), hashCode() thiab toString() txoj hauv kev ntxiv rau cov qauv tsim thiab cov txheej txheem getter.

  • Tswv yim qhov thib ob saib ua ntej ntawm Foreign-Memory Access API, tso cai rau cov ntawv thov Java kom ruaj ntseg thiab nkag mus rau thaj chaw nco sab nraud Java heap los ntawm kev tswj cov MemorySegment, MemoryAddress, thiab MemoryLayout abstractions.
  • Neeg tsis taus thiab deprecated lub Biased Locking optimization txheej txheem siv nyob rau hauv lub HotSpot JVM kom txo cov xauv nyiaj siv ua haujlwm. Cov txheej txheem no tau poob nws qhov cuam tshuam ntawm cov tshuab nrog atomic cov lus qhia los ntawm CPUs niaj hnub, thiab siv zog heev los tswj vim nws qhov nyuaj.
  • Tshaj tawm tsis siv neeg mechanism RMI qhib, uas yuav raug tshem tawm hauv kev tso tawm yav tom ntej. Nws tau raug sau tseg tias RMI Ua kom tsis tu ncua, tso tseg rau qeb ntawm kev xaiv hauv Java 8 thiab yuav luag tsis siv hauv kev xyaum niaj hnub no.
  • Rho tawm JavaScript cav Nashorn, uas tau deprecated hauv Java SE 11.
  • Tshem tawm chaw nres nkoj rau Solaris OS thiab SPARC processors (Solaris / SPARC, Solaris / x64 thiab Linux / SPARC). Tshem tawm cov chaw nres nkoj no yuav tso cai rau cov zej zog txhawm rau txhawm rau txhim kho OpenJDK cov yam ntxwv tshiab yam tsis tau nkim sijhawm tswj xyuas Solaris thiab SPARC cov yam ntxwv tshwj xeeb.

Tau qhov twg los: opennet.ru

Ntxiv ib saib