Ukukhishwa kwe-Java SE 15

Ngemva kwezinyanga eziyisithupha zokuthuthuka, i-Oracle kukhishwe inkundla I-Java SE 15 (I-Java Platform, i-Standard Edition 15), iphrojekthi ye-OpenJDK yomthombo ovulekile isetshenziswa njengokuqaliswa kwereferensi. I-Java SE 15 igcina ukuhambisana okusemuva nokukhishwa kwangaphambilini kweplathifomu ye-Java; wonke amaphrojekthi e-Java abhalwe ngaphambilini azosebenza ngaphandle kwezinguquko lapho yethulwa ngaphansi kwenguqulo entsha. Izakhiwo ezilungele ukufaka i-Java SE 15 (i-JDK, i-JRE ne-Server JRE) ilungisiwe ye-Linux (x86_64), iWindows ne-macOS. Ukuqaliswa kwereferensi okuthuthukiswe iphrojekthi ye-OpenJDK I-Java 15 iwumthombo ovulekile ngokugcwele ngaphansi kwelayisensi ye-GPLv2, ngaphandle kwe-GNU ClassPath evumela ukuxhumanisa okunamandla nemikhiqizo yezentengiso.

I-Java SE 15 ihlukaniswa njengokukhululwa kosekelo olujwayelekile futhi izoqhubeka nokuthola izibuyekezo kuze kube ukukhishwa okulandelayo. Igatsha Lokusekela Isikhathi Eside (LTS) kufanele libe yi-Java SE 11, ezoqhubeka nokuthola izibuyekezo kuze kube ngu-2026. Igatsha langaphambilini le-LTS le-Java 8 lizosekelwa kuze kube nguDisemba 2020. Ukukhishwa okulandelayo kwe-LTS kuhlelelwe uSepthemba 2021. Ake sikukhumbuze ukuthi kusukela ngokukhululwa kwe-Java 10, iphrojekthi ishintshele kunqubo entsha yokuthuthukisa, okusho umjikelezo omfushane wokwakhiwa kokukhishwa okusha. Ukusebenza okusha manje sekuthuthukisiwe egatsheni elilodwa eliyinhloko elivuselelwe njalo, elihlanganisa izinguquko esezilungile futhi lapho amagatsha enziwa khona njalo ngemva kwezinyanga eziyisithupha ukuze kuzinziswe ukukhishwa okusha.

Из emisha I-Java 15 can Maka:

  • Kwakhelwe ngaphakathi ukusekelwa kwe-EdDSA (Edwards-Curve Digital Signature Algorithm) yokudala isiginesha yedijithali RFC 8032). Ukuqaliswa okuhlongozwayo kwe-EdDSA akuxhomekile ezinkundleni zehadiwe, kuvikelwe ekuhlaselweni kwesiteshi esiseceleni (isikhathi esiqhubekayo sazo zonke izibalo siyaqinisekiswa) futhi kuyashesha ekusebenzeni kunokuqaliswa okukhona kwe-ECDSA okubhalwe ngolimi C, ngezinga elifanayo lokuvikela. Isibonelo, i-EdDSA isebenzisa ijika eliyielliptic elinokhiye ongu-126-bit ibonisa ukusebenza okufanayo ne-ECDSA enejika eliyielliptic secp256r1 kanye nokhiye ongu-128-bit.
  • Kwengeziwe usekelo lokuhlola lwamakilasi avaliwe nezixhumi ezibonakalayo, ezingakwazi ukusetshenziswa ezinye izigaba nezixhumi ezibonakalayo ukuze zizuze, zinwebe, noma zikhiphe ukusetshenziswa. Amakilasi avaliwe futhi ahlinzeka ngendlela edalula kakhulu yokukhawulela ukusetshenziswa kwe-superclass kunezilungisi zokufinyelela, ngokusekelwe ekufakeni kuhlu ngokusobala izigaba ezingaphansi ezivunyelwe ukunwetshwa.

    iphakheji com.example.geometry;

    Isigaba somphakathi esivaliwe Isimo
    izimvume com.example.polar.Circle,
    com.example.quad.Rectangle,
    com.example.quad.simple.Square {…}

  • Kwengeziwe ukwesekwa kwamakilasi afihliwe angakwazi ukusetshenziswa ngokuqondile yi-bytecode yamanye amakilasi. Inhloso eyinhloko yamakilasi afihliwe kufanele isetshenziswe kuzinhlaka ezikhiqiza amakilasi ngokuguqukayo ngesikhathi sokusebenza futhi ziwasebenzise ngokungaqondile, ngokusebenzisa ukukhombisa. Amakilasi anjalo ngokuvamile anomjikelezo wempilo elinganiselwe, ngakho ukuwagcina ukuze afinyelele kusuka kumakilasi akhiqizwe ngokwezibalo akulungile futhi kuzoholela kuphela ekwenyukeni kokusetshenziswa kwenkumbulo. Amakilasi afihliwe futhi asusa isidingo se-API engajwayelekile sun.misc.Unsafe::defineAnonymousClass, esihlelelwe ukususwa ngokuzayo.
  • Umqoqi wezibi we-ZGC (Z Garbage Collector) usuzinzile futhi ubonakala njengolungele ukusetshenziswa kabanzi. I-ZGC isebenza ngemodi yokungenzi lutho, inciphisa ukubambezeleka ngenxa yokuqoqwa kukadoti ngangokunokwenzeka (isikhathi sokuhlala lapho usebenzisa i-ZGC asidluli ku-10 ms.) futhi ingasebenza ngazo zombili izinqwaba ezincane nezinkulu, ezinobukhulu obusuka kumamegabhayithi angamakhulu ambalwa kuya kumaterabhayithi amaningi.
  • Izinzile futhi itholakale isilungele ukusetshenziswa okuvamile
    umqoqi wezibi Shenandoah, ukusebenza ngokuma kancane (Isiqoqi Sokulahla Udoti Wesikhathi Esiphansi). I-Shenandoah yathuthukiswa i-Red Hat futhi iphawuleka ngokusebenzisa kwayo i-algorithm enciphisa isikhathi sokuqoqwa kukadoti ngokuqalisa ukuhlanza ngokuhambisana nokwenziwa kwezinhlelo ze-Java. Ubukhulu bokubambezeleka okwethulwa umqoqi kadoti buyabikezelwa futhi akuxhomeki kubukhulu benqwaba, i.e. kuzinqwaba zika-200 MB kanye no-200 GB ukubambezeleka kuzofana (ungaphumi ngaphezu kwe-50 ms futhi ngokuvamile phakathi kuka-10 ms);

  • Ukwesekwa sekuqinisiwe futhi kwethulwa olimini amabhlogo wombhalo - uhlobo olusha lwezintambo ezingokoqobo ezikuvumela ukuthi ufake idatha yombhalo wemigqa eminingi kukhodi yomthombo ngaphandle kokusebenzisa ukuphunyuka kohlamvu nokulondoloza ukufometha kombhalo wangempela kubhulokhi. Ibhulokhi inohlaka ngezingcaphuno ezintathu eziphindwe kabili.

    Isibonelo, esikhundleni sekhodi

    Uchungechunge lwe-html = " » +
    "\n\t" + " » +
    "\n\t\t" + " \"I-Java 1 isifikile!\" » +
    "\n\t" + " » +
    "\n" + " ";

    ungacacisa:

    String html = """


    »Java 1\
    lapha!

    """;

  • Kuklanywe kabusha I-Legacy DatagramSocket API. Ukufakwa okudala kwe-java.net.DatagramSocket kanye ne-java.net.MulticastSocket kuthathelwe indawo ukusetshenziswa kwesimanje okulula ukukulungisa nokulungisa, futhi kuhambisana nokusakaza okubonakalayo okuthuthukiswe ngaphakathi kwephrojekthi. Lula. Esimeni sokungahambelani okungenzeka nekhodi ekhona, ukusebenzisa okudala akukasuswa futhi kunganikwa amandla kusetshenziswa inketho ethi jdk.net.usePlainDatagramSocketImpl.
  • Kuphakanyiswe ukuqaliswa kokuhlolwa kwesibili ukufanisa iphethini ku-opharetha "isibonelo", esikuvumela ukuthi uchaze ngokushesha okuguquguqukayo kwasendaweni ukuze ufinyelele inani elihloliwe. Isibonelo, ungabhala ngokushesha ukuthi “uma (obj exampleof String s && s.length() > 5) {.. s.contains(..) ..}” ngaphandle kokuchaza ngokucacile “String s = (String) obj”.

    Bekuyi:

    uma (obj exampleof Group) {
    Iqembu = (Iqembu) obj;
    var entries = group.getEntries();
    }

    Manje ungenza ngaphandle kwencazelo “Iqembu leqembu = (Iqembu) obj”:

    uma (obj exampleof Group group) {
    var entries = group.getEntries();
    }

  • Okuhlongozwayo ukuqaliswa kokuhlolwa kwesibili kwegama elingukhiye "irekhodi", ehlinzeka ngefomu elihlangene lokuchaza amakilasi, okukuvumela ukuba ugweme ukuchaza ngokucacile izindlela ezihlukene zezinga eliphansi ezifana ne-equals(), i-hashCode() kanye ne-toString() ezimeni lapho idatha igcinwa kuphela ezinkambini ukuziphatha kwazo kungashintshi. Uma ikilasi lisebenzisa ukusetshenziswa okujwayelekile kwezindlela ezilinganayo(), i-hashCode() kanye ne-toString(), lingenza ngaphandle kwencazelo yazo esobala:

    irekhodi lomphakathi le-BankTransaction (Idethi ye-LocalDate,
    inani eliphindwe kabili
    Incazelo yeyunithi yezinhlamvu) {}

    Lesi simemezelo sizokwengeza ngokuzenzakalelayo ukusetshenziswa kwezindlela ze-equals(), hashCode() kanye ne-toString() ngaphezu kwezindlela zomakhi ne-getter.

  • Okuhlongozwayo ukubuka kuqala kwesibili kwe-Foreign-Memory Access API, okuvumela izinhlelo zokusebenza ze-Java ukuthi zifinyelele ngokuphephile nangempumelelo izifunda zenkumbulo ezingaphandle kwenqwaba ye-Java ngokushintsha izingcaphuno ezintsha ze-MemorySegment, MemoryAddress, kanye ne-MemoryLayout.
  • Ikhutshaziwe futhi yahoxisa indlela yokuthuthukisa yokukhiya okuchemile esetshenziswa ku-HotSpot JVM ukuze kwehliswe ukukhiya ngaphezulu. Le nqubo ilahlekelwe ukuhambisana kwayo kumasistimu anemiyalo ye-athomu enikezwe ama-CPU anamuhla, futhi idinga abasebenzi kakhulu ukuba igcinwe ngenxa yobunkimbinkimbi bayo.
  • Kumenyezelwe indlela ephelelwe yisikhathi Ukuvuselelwa kwe-RMI, ezokhishwa ekukhishweni okuzayo. Kuyaphawulwa ukuthi i-RMI Activation isiphelelwe yisikhathi, yehliselwe esigabeni senketho ku-Java 8 futhi cishe ayikaze isetshenziswe emisebenzini yesimanje.
  • Kususiwe Injini yeJavaScript I-Nashorn, eyehliswa ku-Java SE 11.
  • Kususiwe amachweba we-Solaris OS kanye nama-SPRC processors (i-Solaris/SPARC, i-Solaris/x64 ne-Linux/SPARC). Ukususa lezi zimbobo kuzovumela umphakathi ukuthi usheshise ukuthuthukiswa kwezici ezintsha ze-OpenJDK ngaphandle kokuchitha isikhathi ugcina izici ezithile ze-Solaris ne-SPARC.

Source: opennet.ru

Engeza amazwana