Java SE 15 berdan

Piştî şeş mehên pêşveçûnê, Oracle berdan rawesta axaftevan JavaSE 15 (Platforma Java, Çapa Standard 15), projeya OpenJDK-çavkaniya vekirî wekî pêkanîna referansê tê bikar anîn. Java SE 15 bi serbestberdanên berê yên platforma Java-yê re lihevhatina paşverû diparêze; hemî projeyên Java-yê yên berê hatine nivîsandin dê dema ku di bin guhertoya nû de werin destpêkirin bêyî guhertinan bixebitin. Avahiyên Java SE 15-a-amade-sazkirî (JDK, JRE û Server JRE) amade kirin ji bo Linux (x86_64), Windows û macOS. Pêkanîna referansê ku ji hêla projeya OpenJDK ve hatî pêşve xistin Java 15 di bin lîsansa GPLv2 de bi tevahî çavkaniyek vekirî ye, digel îstîsnayên GNU ClassPath ku rê dide girêdana dînamîkî bi hilberên bazirganî re.

Java SE 15 wekî serbestberdana piştevaniya gelemperî tête dabeş kirin û heya serbestberdana paşîn dê wergirtina nûvekirinan bidomîne. Pêdivî ye ku şaxa Piştgiriya Demdirêj (LTS) Java SE 11 be, ku dê heya 2026-an nûvekirinan bigire. Şaxa LTS ya berê ya Java 8 dê heya Kanûna 2020-an were piştgirî kirin. Serbestberdana LTS ya paşîn ji bo Îlona 2021-an tê plansaz kirin. Ka em ji we re bi bîr bînin ku bi destpêkirina berdana Java 10-ê re, proje derbasî pêvajoyek nû ya pêşkeftinê bû, ku tê wateya çerxek kurttir ji bo damezrandina weşanên nû. Fonksiyona nû naha di yek şaxek masterê ya bi domdarî nûvekirî de, ku tê de guheztinên amade hene û ji kîjan şeş mehan carekê şax têne dabeş kirin da ku serbestberdanên nû sabît bikin, têne pêşve xistin.

Ji nûbûnên Java 15 dikare mark:

  • Avakirin piştgiriya ji bo EdDSA (Algorîtmaya Îmzeya Dîjîtal Edwards-Curve) algorîtmaya afirandina îmzeya dîjîtal RFC 8032). Pêkanîna EdDSA ya pêşniyarkirî ne girêdayî platformên hardware ye, ji êrîşên kanala alî tê parastin (dema domdar a hemî hesaban tê misoger kirin) û di performansê de ji pêkanîna ECDSA-ya heyî ya ku bi zimanê C-yê hatî nivîsandin, bi heman astê parastinê, zûtir e. Mînakî, EdDSA ku kelekek elîptîk bi mifteyek 126-bit bikar tîne, performansa mîna ECDSA-ya bi kulmek eliptîk secp256r1 û mifteyek 128-bit nîşan dide.
  • Zêde kirin Piştgiriya ceribandinê ya ji bo çîn û navgînên mohrkirî, ku ji hêla çîn û navgînên din ve nayên bikar anîn da ku mîras, dirêjkirin, an jinavbirina pêkanînê. Di heman demê de çînên mohrkirî rêgezek diyarkertir peyda dikin da ku karanîna superclass ji guhêrbarên gihîştinê sînordar bike, li ser bingeha eşkere navnîşkirina jêr-classên ku ji bo dirêjkirinê têne destûr kirin.

    pakêt com.example.geometry;

    giştî morkirin class Shape
    destûrê dide com.example.polar.Circle,
    com.example.quad.Rectangle,
    com.example.quad.simple.Square {…}

  • Zêde kirin piştgirî ji bo çînên veşartî ku rasterast ji hêla bytecode çînên din ve nayê bikar anîn. Armanca sereke ya çînên veşartî ew e ku di çarçoveyên ku bi dînamîk di dema xebitandinê de çînên çêdikin û wan nerasterast bikar bînin, bi kar bînin. berbiçav. Dersên weha bi gelemperî xwedan çerxa jiyanê ya tixûbdar in, ji ber vê yekê domandina wan ji bo gihîştina ji dersên ku bi statîkî têne hilberandin ne rastdar e û dê tenê bibe sedema zêdebûna xerckirina bîranînê. Dersên veşartî di heman demê de hewcedariya API-ya ne-standard sun.misc.Unsafe::defineAnonymousClass, ya ku ji bo paşerojê tê rakirin, ji holê radike.
  • Berhevkarê çopê ZGC (Z Garbage Collector) hatiye stabilîzekirin û ji bo karanîna berbelav amade ye. ZGC di moda pasîf de kar dike, derengiya ji ber berhevkirina çopê bi qasî ku gengaz kêm dike (dema rawestanê dema ku ZGC bikar tîne ji 10 ms.) û dikare hem bi girseyên piçûk û hem jî yên mezin re bixebite, ku mezinahiya wan ji çend sed megabyte bigire heya gelek terabyte.
  • Stabilîze kirin û ji bo karanîna gelemperî amade ye
    çopê berhevkar Shenandoah, bi rawestanên herî kêm (Low-Pause-Time Berbage Collector). Shenandoah ji hêla Red Hat ve hatî pêşve xistin û ji ber karanîna wê ya algorîtmayek ku di dema berhevkirina çopê de dema rawestanê kêm dike bi xebata paqijkirinê re paralel bi pêkanîna sepanên Java-yê re girîng e. Mezinahiya derengiyên ku ji hêla berhevkarê çopê ve têne destnîşan kirin pêşbînîkirî ye û bi mezinahiya girikê ve girêdayî nîne, ango. ji bo komikên 200 MB û 200 GB dereng dê wekî hev bin (dernekeve ji 50 ms zêdetir û bi gelemperî di nav 10 ms de);

  • Piştgirî hatiye stabîlkirin û ketiye zimên blokên nivîsê - formek nû ya rêzikên rêzikan ku destûrê dide te ku hûn daneya nivîsê ya pir-xêzik di koda çavkaniyê de bicîh bikin bêyî ku karakter birevin û formata nivîsê ya orîjînal di blokê de biparêzin. Blok bi sê tîpên ducar ve hatî çarçove kirin.

    Mînakî, li şûna kodê

    String html = " » +
    "\n\t" + " » +
    "\n\t\t" + " \"Java 1 li vir e!\" » +
    "\n\t" + " » +
    "\n" + " ";

    hûn dikarin diyar bikin:

    String html = """


    »Java 1\
    li vir e!

    """;

  • Ji nû ve xebitandin Legacy DatagramSocket API. Sepandinên kevin ên java.net.DatagramSocket û java.net.MulticastSocket bi pêkanînek nûjen ve hatine guheztin ku jêbirin û parastin hêsantir e, û di heman demê de bi herikên virtual yên ku di nav projeyê de hatine pêşve xistin re hevaheng e. Loom. Di rewşeke muhtemel a lihevnebûna bi koda heyî re, pêkanîna kevin nehatiye rakirin û bi vebijarka jdk.net.usePlainDatagramSocketImpl dikare were çalak kirin.
  • Pêkanîna ceribandina duyemîn pêşniyar kirin lihevhatina nimûne di operatora "instanceof" de, ku dihêle hûn tavilê guhêrbarek herêmî diyar bikin da ku bigihîjin nirxa kontrolkirî. Mînakî, hûn dikarin tavilê "eger (obj mînaka String s && s.length() > 5) {.. s.contains(..) ..}" binivîsin bêyî ku bi eşkere "Rêz s = (Rêz) obj" diyar bikin.

    Bû:

    heke (nimûneya Grûpê) {
    Koma kom = (Grûp)obj;
    var entries = group.getEntries();
    }

    Naha hûn dikarin bêyî pênase "Koma kom = (Grûp) obj" bikin:

    heke (nimûneya grûpê ya grûpê) {
    var entries = group.getEntries();
    }

  • Pêşniyar kirin pêkanîna ceribandina duyemîn a peyva key "rekor", ku ji bo danasîna çînan formek tevlihev peyda dike, dihêle hûn di rewşên ku dane tenê di qadên ku tevgera wan nayê guheztin de têne hilanîn, ji eşkere danasîna awayên cûrbecûr nizm ên wekî wekhev (), hashCode () û toString () dûr bixin. Dema ku çînek pêkanînên standard ên rêbazên wekhev(), hashCode() û toString() bikar tîne, ew dikare bêyî pênaseya wan a eşkere bike:

    Tomara giştî Veguheztina Bankê (Dîroka Herêmî,
    miqdara du qat
    Danasîna rêzikê) {}

    Ev danezan dê ji bilî awayên çêker û wergir jixweber pêkanînên rêbazên wekhev(), hashCode() û toString() zêde bike.

  • Pêşniyar kirin pêşdîtinek duyemîn a API-ya Têketinê ya Biyanî-Memory, dihêle ku sepanên Java-yê bi ewlehî û bikêrhatî bigihîjin herêmên bîranînê yên li derveyî girava Java-yê bi manîpulekirina abstractionên MemorySegment, MemoryAddress, û MemoryLayout nû.
  • Bêmecel û teknîka optimîzasyona Biased Locking ku di HotSpot JVM de hatî bikar anîn ji holê rakirin da ku sermaya kilîtkirinê kêm bike. Vê teknîkê li ser pergalên bi rêwerzên atomî yên ku ji hêla CPU-yên nûjen ve têne peyda kirin re têkildariya xwe winda kiriye, û ji ber tevliheviya xwe ji bo domandina pir kedkar e.
  • Hat ragihandin mekanîzmaya kevnar Çalakkirina RMI, ku dê di serbestberdana pêşerojê de were rakirin. Tê zanîn ku Çalakkirina RMI kevnar e, di kategoriya vebijarkek Java 8-ê de tê veguheztin û hema hema di pratîka nûjen de nayê bikar anîn.
  • Jêbirin motora JavaScript rhino, ya ku di Java SE 11 de hate derxistin.
  • Rakirin portên ji bo pêvajoyên Solaris OS û SPARC (Solaris / SPARC, Solaris / x64 û Linux / SPARC). Rakirina van benderan dê rê bide civatê ku pêşveçûna taybetmendiyên nû yên OpenJDK-ê bêyî windakirina wextê li ser domandina taybetmendiyên taybetî yên Solaris- û SPARC-ê bilez bike.

Source: opennet.ru

Add a comment