Java SE 27 va OpenJDK 27 chiqarildi

Olti oylik ishlab chiqishdan so'ng, Oracle ochiq kodli OpenJDK loyihasini o'zining mos yozuvlar implementatsiyasi sifatida ishlatadigan Java SE 27 (Java Platform, Standard Edition 27) ni chiqardi. Ba'zi eskirgan funksiyalarni olib tashlashdan tashqari, Java SE 27 Java platformasining oldingi versiyalari bilan orqaga qarab moslikni saqlab qoladi - ilgari yozilgan Java loyihalarining aksariyati yangi versiyada o'zgarishsiz ishlaydi. Java SE 27 (JDK, JRE va Server JRE) ning o'rnatishga tayyor versiyalari tayyorlandi. Linux (x86_64, AArch64), Windows (x86_64) va macOS (x86_64, AArch64). OpenJDK loyihasi tomonidan ishlab chiqilgan Java SE 27 ma'lumotnoma implementatsiyasi GPLv2 litsenziyasi ostida to'liq ochiq kodli bo'lib, GNU ClassPath istisnosiga ega bo'lib, tijorat mahsulotlari bilan dinamik bog'lanish imkonini beradi.

Java SE 27 muntazam qo'llab-quvvatlash versiyasi sifatida tasniflanadi, yangilanishlar keyingi versiyagacha chiqariladi. Uzoq muddatli qo'llab-quvvatlash (LTS) tarmog'i Java SE 25, Java SE 21 yoki Java SE 17 bo'lishi kerak, yangilanishlar mos ravishda 2033, 2031 va 2029 yillargacha chiqariladi (odatda 2030, 2028 va 2026 yillar sentyabrgacha mavjud). Java SE 8 LTS tarmog'i uchun kengaytirilgan qo'llab-quvvatlash 2030 yilgacha va Java SE 11 uchun 2032 yilgacha davom etadi.

Java SE 27 (1, 2, 3, 4) dagi o'zgarishlar quyidagilarni o'z ichiga oladi:

  • Odatiy bo'lib, barcha muhitlar ilgari server tizimlari uchun ishlatilgan G1 (Garbage-First) axlat yig'uvchisidan foydalanadi. G1 katta xotira sig'imiga ega ko'p protsessorli tizimlarda foydalanish va oldindan aytib bo'ladigan kechikishni yuqori o'tkazuvchanlik bilan muvozanatlash uchun optimallashtirilgan. Ish paytida G1 xotirani ko'plab kichik mintaqalarga ajratadi va ko'proq ishlatilmaydigan obyektlar va kamroq faol kirish mumkin bo'lgan ma'lumotlarga ega mintaqalarga ustuvorlik beradi.
  • HotSpot JVM sukut bo'yicha ixcham obyekt sarlavhalaridan foydalanadi. 64-bitli tizimlarda sarlavha hajmi 96 dan 64 bitgacha qisqartirildi, bu xotira sarfini kamaytirdi va protsessor keshiga ma'lumotlarning tushish ehtimolini oshirdi. SPECjbb2015 benchmarklarida xotira sarfi 22% ga, protsessor yuki 8% ga va chiqindilarni yig'ish operatsiyalari soni 15% ga kamaydi. JSON tahlil qiluvchisi uchun sinov vaqti 10% ga qisqartirildi.
  • TLS 1.3 implementatsiyasi kvantga chidamli ML-KEM (CRYSTALS-Kyber) algoritmini klassik ECDHE elliptik egri chiziq algoritmlari bilan birlashtirgan gibrid kalit kelishuv sxemalarini qo'llab-quvvatlaydi: X25519MLKEM768 (ECDHE X25519 egri chizig'i + ML-KEM-768 bilan), SecP256r1MLKEM76 (ECDHE secp256r1 egri chizig'i + ML-KEM-768 bilan) va SecP384r1MLKEM1024 (ECDHE secp384r1 egri chizig'i + ML-KEM-1024 bilan). javax.net API'sida.Ssl Ushbu sxemalar sukut bo'yicha yoqilgan va ulardan foydalanish uchun hech qanday dastur o'zgarishlarini talab qilmaydi.
  • Ishlashni monitoring qilish, profillash va diagnostika qilish uchun ishlatiladigan JDK Flight Recorder (JFR) vositasi endi saqlangan diagnostika ma'lumotlaridagi buyruq satri argumentlarini, muhit o'zgaruvchilarining boshlang'ich qiymatlarini va tizim xususiyatlarini dezinfektsiya qilishni qo'llab-quvvatlaydi. Ushbu o'zgarish profillangan jarayon tomonidan qayta ishlangan maxfiy ma'lumotlarning, masalan, avtorizatsiya tokenlari va muhit o'zgaruvchilari orqali uzatiladigan API kirish kalitlarining oqishini oldini oladi.
  • Lazy Constants API ning uchinchi ko'rinishi o'zgarmas ma'lumotlarni o'z ichiga olgan va JVM da konstantalar sifatida ko'rib chiqilgan obyektlar bilan ishlash uchun amalga oshirildi. Bunday obyektlarga "final" kalit so'zli maydonlar uchun o'xshash ishlash optimallashtirishlari qo'llaniladi. "final" dan farqli o'laroq, yangi API doimiy qiymatlarni yaratishni ularning boshlang'ich qiymatidan ajratadi, qiymatni faqat bir marta boshlang'ich qiymatiga o'tkazish mumkinligini kafolatlaydi, dasturni ishga tushirish vaqtini qisqartiradi va ilgari faqat JDK-ichki kodida ishlatilgan doimiy katlama optimallashtirishlarini foydalanuvchi kodida ishlatishga imkon beradi. class Application { // Avval: // static final UserService USERS = new UserService(); // Hozir: static final StableValue FOYDALANUVCHILAR = StableValue.of(); ommaviy statik FoydalanuvchiXizmati foydalanuvchilar() { USERS.orElseSet(UserService::new) ni qaytaradi; } }
  • Naqshni moslashtirish mexanizmi barcha turdagi naqshlarda, instanceof operatorida va switch bloklarida ibtidoiy turlardan (int, byte, char va boshqa obyekt bo'lmagan bazaviy turlar) foydalanish imkoniyatining beshinchi loyihasini taqdim etadi. switch (x.getStatus()) { case 0 -> "okay"; case 1 -> "warning"; case 2 -> "error"; case int i -> "unknown status: " + i; } if (i instanceof byte b) { … b … }
  • Turli oqimlarda ishlaydigan bir nechta vazifalarni bitta birlik sifatida ko'rib chiqish orqali ko'p oqimli ilovalarni ishlab chiqishni soddalashtiradigan Structured Concurrency API ning yettinchi loyihasi sinov uchun chiqarildi.
  • Vector API ning o'n ikkinchi sinov implementatsiyasi amalga oshirildi. Ushbu API x86_64 va AArch64 protsessor vektor ko'rsatmalaridan foydalangan holda bajariladigan vektor hisoblashlari uchun funktsiyalarni taqdim etadi va bir nechta qiymatlar (SIMD) ustida bir vaqtning o'zida operatsiyalarni amalga oshirishga imkon beradi. HotSpot JIT kompilyatorining skalyar operatsiyalarni avtomatik vektorlashtirishidan farqli o'laroq, yangi API parallel ma'lumotlarni qayta ishlash uchun vektorlashtirish ustidan aniq boshqaruv imkonini beradi.
  • API ning uchinchi loyihasi endi PEM (Pivacy-Enhanced Mail) formatidan foydalangan holda kriptografik kalitlar, sertifikatlar va sertifikatlarni bekor qilish ro'yxatlarini o'z ichiga olgan obyektlarni kodlash va dekodlash uchun mavjud.

Bundan tashqari, grafik foydalanuvchi interfeysi ilovalarini yaratish uchun JavaFX 27 platformasiga yangilanish chiqarilganini e'lon qilishdan mamnunmiz. Yaqin soatlarda JavaScript (Node.js), Python, Ruby, R, har qanday JVM tilida (Java, Scala, Clojure, Kotlin) va LLVM bitkodi yaratilishi mumkin bo'lgan tillarda (C, C++, Rust) ishlaydigan ilovalarni qo'llab-quvvatlaydigan GraalVM 27 universal virtual mashinasining chiqarilishi ham kutilmoqda.

Manba: opennet.ru

DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling 🔥 DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster