Java SE 19 versiyasi

Olti oylik rivojlanishdan so'ng Oracle Java SE 19 (Java Platformasi, Standard Edition 19) ni chiqardi, u OpenJDK ochiq manba loyihasini mos yozuvlar dasturi sifatida ishlatadi. Ba'zi eskirgan xususiyatlarni olib tashlash bundan mustasno, Java SE 19 Java platformasining oldingi versiyalari bilan orqaga qarab muvofiqlikni saqlab qoladi - ilgari yozilgan Java loyihalarining ko'pchiligi yangi versiyada ishlayotganda o'zgartirishlarsiz ishlaydi. Java SE 19 (JDK, JRE va Server JRE) ning oʻrnatiladigan tuzilmalari Linux (x86_64, AArch64), Windows (x86_64) va macOS (x86_64, AArch64) uchun tayyorlangan. OpenJDK loyihasi tomonidan ishlab chiqilgan Java 19 mos yozuvlar ilovasi GPLv2 litsenziyasi ostida to'liq ochiq, GNU ClassPath istisnolari bilan tijorat mahsulotlariga dinamik ulanish imkonini beradi.

Java SE 19 muntazam qoʻllab-quvvatlash versiyasi sifatida tasniflanadi va keyingi nashrga qadar yangilanishlarni olishda davom etadi. Uzoq muddatli qo'llab-quvvatlash (LTS) filiali Java SE 17 bo'lishi kerak, u 2029 yilgacha yangilanishlarni olishda davom etadi. Eslatib o'tamiz, Java 10-ning chiqarilishidan boshlab, loyiha yangi ishlab chiqish jarayoniga o'tdi, bu yangi nashrlarni shakllantirish uchun qisqaroq tsiklni nazarda tutadi. Doimiy yangilanib turadigan bitta asosiy bo'limda yangi funksiyalar ishlab chiqilgan bo'lib, u tayyor o'zgarishlarni o'z ichiga oladi va yangi nashrlarni barqarorlashtirish uchun har olti oyda filiallar bo'linadi.

Java 19-dagi yangi xususiyatlar quyidagilarni o'z ichiga oladi:

  • Java 16 da taqdim etilgan naqshlarni moslashtirish xususiyatini rekord sinflar qiymatlarini tahlil qilish vositalari bilan kengaytirib, rekord naqshlarni dastlabki qo'llab-quvvatlash taklif qilindi. Masalan: rekord Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • Linux tuzilmalari RISC-V arxitekturasini qo'llab-quvvatlaydi.
  • Tashqi kutubxonalardan funksiyalarni chaqirish va JVM dan tashqari xotiraga kirish orqali Java dasturlarining tashqi kod va maʼlumotlar bilan oʻzaro taʼsirini tashkil qilish imkonini beruvchi FFM (Xorijiy funktsiya va xotira) API uchun dastlabki yordam qoʻshildi.
  • Yuqori unumdor ko'p tarmoqli ilovalarni yozish va ularga xizmat ko'rsatishni sezilarli darajada soddalashtiradigan engil iplar bo'lgan virtual iplar uchun qo'shimcha yordam.
  • X86_64 va AArch64 protsessorlarida vektor ko'rsatmalari yordamida bajariladigan va operatsiyalarni bir vaqtning o'zida bir nechta qiymatlarga (SIMD) qo'llash imkonini beruvchi vektorli hisoblar uchun funktsiyalarni ta'minlovchi vektor API-ning to'rtinchi ko'rinishi taklif qilindi. HotSpot JIT kompilyatorida skaler operatsiyalarni avtovektorlashtirish uchun taqdim etilgan imkoniyatlardan farqli o'laroq, yangi API parallel ravishda ma'lumotlarni qayta ishlash uchun vektorizatsiyani aniq nazorat qilish imkonini beradi.
  • "Switch" iboralarida naqsh moslashuvining uchinchi eksperimental ilovasi qo'shildi, bu "holat" yorliqlarida aniq qiymatlarni emas, balki bir vaqtning o'zida bir qator qiymatlarni qamrab oluvchi moslashuvchan naqshlardan foydalanishga imkon beradi, buning uchun avvalroq buni amalga oshirish kerak edi. “agar...else” iboralarining noqulay zanjirlaridan foydalaning. Obyekt o = 123L; String formatlangan = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • Strukturaviy parallelizm uchun eksperimental API qoʻshildi, bu turli tormozlarda bajariladigan bir nechta vazifalarni bitta blok sifatida koʻrib chiqish orqali koʻp tarmoqli ilovalarni ishlab chiqishni osonlashtiradi.

Manba: opennet.ru

a Izoh qo'shish