Java SE 18 buraxılışı

Altı aylıq inkişafdan sonra Oracle, OpenJDK açıq mənbə layihəsindən istinad tətbiqi kimi istifadə edən Java SE 18 (Java Platform, Standard Edition 18) platformasını buraxdı. Bəzi köhnəlmiş xüsusiyyətlərin silinməsi istisna olmaqla, Java SE 18 Java platformasının əvvəlki buraxılışları ilə geriyə uyğunluğu qoruyur - əvvəllər yazılmış Java layihələrinin əksəriyyəti yeni versiya altında işləyərkən heç bir dəyişiklik olmadan işləyəcək. Java SE 18 (JDK, JRE və Server JRE) quraşdırmaya hazır quruluşları Linux (x86_64, AArch64), Windows (x86_64) və macOS (x86_64, AArch64) üçün hazırlanmışdır. OpenJDK layihəsi tərəfindən hazırlanmış Java 18 istinad tətbiqi kommersiya məhsulları ilə dinamik əlaqəyə imkan vermək üçün GNU ClassPath istisnaları ilə GPLv2 lisenziyası altında tam açıqdır.

Java SE 18 müntəzəm dəstək buraxılışı kimi təsnif edilir və yeniləmələr növbəti buraxılışdan əvvəl buraxılacaq. Uzunmüddətli dəstək (LTS) filialı 17-cu ilə qədər yeniləmələri alacaq Java SE 2029 olmalıdır. Xatırladaq ki, Java 10-un buraxılışından başlayaraq, layihə yeni relizlərin formalaşması üçün daha qısa dövrü nəzərdə tutan yeni inkişaf prosesinə keçdi. Artıq tamamlanmış dəyişiklikləri özündə cəmləşdirən və yeni buraxılışları sabitləşdirmək üçün hər altı aydan bir budaqlanan filiallardan ibarət daimi yenilənən bir master filialda yeni funksionallıq hazırlanır.

Java 18-da yeni xüsusiyyətlərə aşağıdakılar daxildir:

  • Standart kodlaşdırma UTF-8-dir. Simvol kodlaşdırmasına əsaslanan mətn məlumatlarını emal edən Java API-ləri indi sistem parametrlərindən və yerli parametrlərdən asılı olmayaraq bütün platformalarda defolt olaraq UTF-8-dən istifadə edəcək. Kodlaşdırmanın sistem dili əsasında seçildiyi köhnə davranışa qayıtmaq üçün siz "-Dfile.encoding=COMPAT" seçimindən istifadə edə bilərsiniz.
  • Paketə com.sun.net.httpserver paketi daxildir, bu paketə jwebserver utiliti və statik məzmuna xidmət etmək üçün sadə http serverinin tətbiqi ilə kitabxana API-si daxildir (CGI və servlet kimi işləyicilər dəstəklənmir). Daxili HTTP serveri iş yükləri üçün optimallaşdırılmayıb və girişə nəzarət və autentifikasiyanı dəstəkləmir, çünki o, ilk növbədə layihələrin prototipləşdirilməsi, sazlanması və sınaqdan keçirilməsi üçün inkişaf prosesində istifadəyə yönəlib.
  • JavaDoc, təsdiqləmə alətlərindən, sintaksisin vurğulanmasından və IDE inteqrasiyasından istifadə edə biləcəyiniz API sənədlərinə işləyən nümunələri və kod parçalarını daxil etmək üçün "@snippet" teqinə dəstək verir.
  • Metodlar, sahələr və sinif konstruktorları haqqında məlumat əldə etmək, həmçinin siniflərin daxili strukturuna çıxış üçün nəzərdə tutulmuş java.lang.reflect API (Core Reflection) tətbiqi yenidən işlənib. java.lang.reflect API özü dəyişməz olaraq qalır, lakin indi bayt kodu generatorlarından istifadə etmək əvəzinə java.lang.invoke modulu tərəfindən təmin edilən metod tutacaqlarından istifadə etməklə həyata keçirilir. Dəyişiklik bizə java.lang.reflect və java.lang.invoke tətbiqlərini birləşdirməyə və onların texniki xidmətini sadələşdirməyə imkan verdi.
  • X86_64 və AArch64 prosessorlarında vektor təlimatlarından istifadə etməklə yerinə yetirilən və əməliyyatların eyni vaxtda birdən çox dəyərə (SIMD) tətbiq edilməsinə imkan verən vektor hesablamaları üçün funksiyaları təmin edən Vector API-nin üçüncü baxışı təklif edilmişdir. Skayar əməliyyatların avtomatik vektorlaşdırılması üçün HotSpot JIT kompilyatorunda təqdim edilən imkanlardan fərqli olaraq, yeni API paralel verilənlərin emalı üçün vektorlaşdırmanı açıq şəkildə idarə etməyə imkan verir.
  • Host adlarını və IP ünvanlarını həll etmək üçün əlavə edilmiş SPI interfeysi (xidmət provayderi interfeysi), əməliyyat sistemi tərəfindən təklif olunan işləyicilərə bağlı olmayan java.net.InetAddress-də alternativ həlledicilərdən istifadə etməyə imkan verir.
  • Xarici Funksiya və Yaddaş API-nin ikinci baxışı təqdim olunur ki, bu da proqramlara Java işləmə müddətindən kənar kod və məlumatlarla qarşılıqlı əlaqədə olmağa imkan verir. Yeni API sizə JVM olmayan funksiyaları səmərəli şəkildə çağırmağa və JVM tərəfindən idarə olunmayan yaddaşa daxil olmağa imkan verir. Məsələn, siz JNI-dən istifadə etmədən xarici paylaşılan kitabxanalardan funksiyalara zəng edə və proses məlumatlarına daxil ola bilərsiniz.
  • Əvvəllər istifadə edilməli olan bir sıra dəyərləri bir anda əhatə edən, dəqiq dəyərlərdən daha çox “iş” etiketlərində çevik nümunələrin istifadəsinə imkan verən “keçid” ifadələrində nümunə uyğunluğunun ikinci eksperimental tətbiqi əlavə edildi. “if...else” ifadələrinin çətin zəncirləri. Obyekt o = 123L; Sətir formatlaşdırıldı = keçid (o) { halda Tam ədəd i -> String.format("int %d", i); case Long l -> String.format("uzun %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); default -> o.toString(); };
  • Tamamlama mexanizmi və onunla əlaqəli Object.finalize(), Enum.finalize(), Runtime.runFinalization() və System.runFinalization() kimi metodlar köhnəlib və gələcək buraxılışda qeyri-aktiv ediləcək.
  • ZGC (Z Garbage Collector), SerialGC və ParallelGC zibil kollektorları sıra təkmilləşdirməni dəstəkləyir.

Mənbə: opennet.ru

Добавить комментарий