Java SE 27 na OpenJDK 27 iliyotolewa

Baada ya miezi sita ya uundaji, Oracle imetoa Java SE 27 (Java Platform, Standard Edition 27), ambayo inatumia mradi wa OpenJDK huria kama utekelezaji wake wa marejeleo. Isipokuwa kuondolewa kwa baadhi ya vipengele vilivyoachwa, Java SE 27 inadumisha utangamano wa nyuma na matoleo ya awali ya jukwaa la Java—miradi mingi ya Java iliyoandikwa hapo awali itaendeshwa bila kubadilika inapoendeshwa chini ya toleo jipya. Miundo iliyo tayari kusakinishwa ya Java SE 27 (JDK, JRE, na Server JRE) imeandaliwa kwa ajili ya Linux (x86_64, AArch64), Windows (x86_64) na macOS (x86_64, AArch64). Imetengenezwa na mradi wa OpenJDK, utekelezaji wa marejeleo ya Java SE 27 ni chanzo huria kikamilifu chini ya leseni ya GPLv2 yenye GNU ClassPath Exception, ambayo inaruhusu muunganisho unaobadilika na bidhaa za kibiashara.

Java SE 27 imeainishwa kama toleo la kawaida la usaidizi, huku masasisho yakitolewa hadi toleo lijalo. Tawi la usaidizi wa muda mrefu (LTS) linapaswa kuwa Java SE 25, Java SE 21, au Java SE 17, huku masasisho yakitolewa hadi 2033, 2031, na 2029, mtawalia (kwa ujumla inapatikana hadi Septemba 2030, 2028, na 2026). Usaidizi uliopanuliwa kwa tawi la Java SE 8 LTS utaendelea hadi 2030, na kwa Java SE 11, hadi 2032.

Mabadiliko katika Java SE 27 (1, 2, 3, 4) yanajumuisha:

  • Kwa chaguo-msingi, mazingira yote hutumia kikusanya takataka cha G1 (Takataka-Kwanza), kilichotumika hapo awali kwa mifumo ya seva. G1 imeboreshwa kwa matumizi kwenye mifumo ya vichakataji vingi vyenye uwezo mkubwa wa kumbukumbu na kwa kusawazisha muda wa kusubiri unaoweza kutabirika na upitishaji wa juu. Wakati wa operesheni, G1 hugawanya kumbukumbu katika maeneo mengi madogo na huweka kipaumbele maeneo hayo yenye vitu vingi visivyotumika na data isiyofikiwa kikamilifu.
  • HotSpot JVM hutumia vichwa vya habari vya vitu vidogo kwa chaguo-msingi. Kwenye mifumo ya biti 64, ukubwa wa vichwa vya habari umepunguzwa kutoka biti 96 hadi 64, kupunguza matumizi ya kumbukumbu na kuongeza uwezekano wa data kuingia kwenye akiba ya kichakataji. Katika vipimo vya SPECjbb2015, matumizi ya kumbukumbu yalipungua kwa 22%, mzigo wa CPU ulipungua kwa 8%, na idadi ya shughuli za ukusanyaji wa takataka ilipungua kwa 15%. Muda wa majaribio ya kichanganuzi cha JSON ulipunguzwa kwa 10%.
  • Utekelezaji wa TLS 1.3 unaongeza usaidizi kwa mipango ya makubaliano ya ufunguo mseto inayochanganya algoriti ya ML-KEM (CRYSTALS-Kyber) isiyostahimili kwantimu na algoriti za mkunjo wa mviringo wa ECDHE wa kawaida: X25519MLKEM768 (ECDHE yenye mkunjo wa X25519 + ML-KEM-768), SecP256r1MLKEM76 (ECDHE yenye mkunjo wa secp256r1 + ML-KEM-768), na SecP384r1MLKEM1024 (ECDHE yenye mkunjo wa secp384r1 + ML-KEM-1024). Katika javax.net API.SSL Mipango hii imewezeshwa kwa chaguo-msingi na haihitaji mabadiliko yoyote ya programu ili kutumika.
  • Kirekodi Ndege cha JDK (JFR), kifaa kinachotumika kwa ajili ya ufuatiliaji wa utendaji, uundaji wa wasifu, na uchunguzi, sasa kinaunga mkono hoja za mstari wa amri za kusafisha, thamani za awali za vigezo vya mazingira, na sifa za mfumo katika taarifa za uchunguzi zilizohifadhiwa. Mabadiliko haya huzuia uvujaji wa data nyeti inayosindikwa na mchakato uliowekwa wasifu, kama vile tokeni za uidhinishaji na funguo za ufikiaji za API zinazopitishwa kupitia vigezo vya mazingira.
  • Hakikisho la tatu la API ya Lazy Constants limetekelezwa kwa ajili ya kufanya kazi na vitu vyenye data isiyobadilika na kuchukuliwa kama vigeu visivyobadilika katika JVM. Uboreshaji wa utendaji sawa na ule wa sehemu zenye neno muhimu la "mwisho" hutumika kwa vitu hivyo. Tofauti na "mwisho," API mpya hutenganisha uundaji wa thamani zisizobadilika kutoka kwa uanzishaji wao, inahakikisha kwamba thamani inaweza kuanzishwa mara moja tu, hupunguza muda wa kuanzisha programu, na kuwezesha uboreshaji wa kukunja mara kwa mara, ambao hapo awali ulitumika tu katika msimbo wa ndani wa JDK, kutumika katika msimbo wa mtumiaji. class Application { // Hapo awali: // static final UserService USERS = new UserService(); // Now: static final StableValue WATUMIAJI = Thamani Iliyoimarika.ya(); watumiaji wa Huduma ya Mtumiaji tuli ya umma() { rudisha USERS.orElseSet(Huduma ya Mtumiaji::mpya); } }
  • Injini inayolinganisha ruwaza huanzisha rasimu ya tano ya uwezo wa kutumia aina za awali (int, baiti, char, na aina zingine za besi zisizo za kitu) katika aina zote za ruwaza, katika opereta wa instanceof, na katika vizuizi vya swichi. swichi (x.getStatus()) { kesi 0 -> "sawa"; kesi 1 -> "onyo"; kesi 2 -> "kosa"; kesi int i -> "hali isiyojulikana: " + i; } ikiwa (i instanceof baiti b) { … b … }
  • Rasimu ya saba ya API ya Concurrency Iliyopangwa, ambayo hurahisisha uundaji wa programu zenye nyuzi nyingi kwa kushughulikia kazi nyingi zinazoendeshwa kwenye nyuzi tofauti kama kitengo kimoja, imetolewa kwa ajili ya majaribio.
  • Utekelezaji wa jaribio la kumi na mbili la API ya Vekta umetekelezwa. API hii hutoa kazi za hesabu za vekta zinazofanywa kwa kutumia maagizo ya vekta ya kichakataji cha x86_64 na AArch64 na inaruhusu shughuli za wakati mmoja kwenye thamani nyingi (SIMD). Tofauti na uwekaji vekta otomatiki wa shughuli za scalar wa kikusanyaji cha HotSpot JIT, API mpya inaruhusu udhibiti dhahiri juu ya uwekaji vekta kwa ajili ya usindikaji wa data sambamba.
  • Rasimu ya tatu ya API sasa inapatikana kwa ajili ya usimbaji na usimbaji wa vitu vyenye funguo za usimbaji, vyeti, na orodha za ubatilishaji wa vyeti kwa kutumia umbizo la PEM (Pivacy-Enhanced Mail).

Zaidi ya hayo, tunafurahi kutangaza kutolewa kwa sasisho kwenye jukwaa la JavaFX 27 kwa ajili ya kuunda programu za kiolesura cha mtumiaji zenye michoro. Kutolewa kwa mashine pepe ya GraalVM 27, ambayo inasaidia programu zinazoendeshwa katika JavaScript (Node.js), Python, Ruby, R, lugha yoyote ya JVM (Java, Scala, Clojure, Kotlin), na lugha ambazo LLVM bitcode inaweza kuzalishwa (C, C++, Rust), pia kunatarajiwa katika saa zijazo.

Chanzo: opennet.ru

Nunua upangishaji wa kuaminika wa tovuti zilizo na ulinzi wa DDoS, seva za VPS VDS 🔥 Nunua upangishaji wa tovuti unaoaminika kwa ulinzi wa DDoS, seva za VPS VDS | ProHoster