JDK 19: Java 19’daki yeni özellikler

JDK 19: The new features in Java 19

Java Geliştirme Kiti 19, bu Eylül’de kullanıma sunuldu ve ilk rampa aşamasına henüz ulaşmış durumda. Yapılandırılmış eşzamanlılık, kayıt kalıpları, bir yabancı işlev ve bellek API’sinin önizlemesi ve açık kaynaklı Linux/RISC-V komut kümesi mimarisi (ISA) desteği dahil olmak üzere yedi özellik sürümü hedefliyor.

Standart Java için yayın sürecindeki bu en son dönüm noktası ile, evrensel jenerikler ve değer nesneleri gibi diğer planlanmış yeteneklerin platformun sonraki bir sürümünü beklemesi gerekecek. JDK 19, JDK 18’in 22 Mart’ta gelişini takip ediyor. Standart Java, altı aylık bir yayın temposunda.

JDK 19’un 20 Eylül’de üretim kullanımı için resmi olarak piyasaya sürülmesi planlanıyor, bunun öncesinde 21 Temmuz’da başlayan ikinci bir rampa aşaması ve 11 Ağustos ile 25 Ağustos’ta yayınlanacak sürüm adayları geliyor. JDK 19’un erken erişim yapılarına şuradan erişilebilir: jdk.java.net/19. JDK 19 özellikleri şunları içerir:

  • Yapılandırılmış eşzamanlılık, bir inkübatör aşamasında, yapılandırılmış bir eşzamanlılık kitaplığı aracılığıyla çok iş parçacıklı programlamayı basitleştirmeyi amaçlamaktadır. Bu eşzamanlılık, hata işlemeyi ve iptali kolaylaştırmak için farklı iş parçacıklarında çalışan birden çok görevi tek bir iş birimi olarak ele alır. Güvenilirlik ve gözlemlenebilirlik artırıldı.
  • A kayıt kalıplarının önizlemesi, kayıt değerlerinin yapısını bozmak için. Kayıt kalıpları ve tip kalıpları, bildirimsel, güçlü ve birleştirilebilir bir veri gezinme ve işleme biçimini etkinleştirmek için iç içe yerleştirilebilir. Teklifin hedefleri, tür kalıplarının sözdizimini veya semantiğini değiştirmeden daha karmaşık, birleştirilebilir veri sorgularını ifade etmek için kalıp eşleştirmeyi genişletmeyi içerir. Bu teklif, aşağıdakiler için kalıp eşleştirme üzerine kuruludur: instanceofJDK 16’da Mart 2021’de teslim edildi. Gelecek planlar, dizi kalıpları ve vararg desenler. Kayıt desenleri bir parçasıdır Amber Projesidaha küçük, üretkenlik odaklı Java özelliklerini keşfetme ve kuluçkaya yatırma çabası.
  • Bir önizleme yabancı işlev ve bellek API’siJava programlarının Java çalışma zamanı dışındaki kod ve verilerle birlikte çalışabileceği bir API tanıtır. Yabancı işlevleri verimli bir şekilde (yani Java çalışma zamanı dışındaki kod) çağırarak ve yabancı belleğe (yani, JVM tarafından yönetilmeyen bellek) güvenli bir şekilde erişerek API, Java programlarının yerel kitaplıkları çağırmasını ve Java’nın tehlikesi ve kırılganlığı olmadan yerel verileri işlemesini sağlar. Yerel Arabirim (JNI). Yabancı işlev ve bellek API’si, daha önceki iki kuluçka API’sini birleştirir: yabancı bellek erişim API’si ve yabancı bağlayıcı API. Yabancı işlev ve bellek API’si daha önce JDK 17’de kuluçkalandı ve JDK 18’de yeniden kuluçkalandı. Teklifin hedefleri arasında kullanım kolaylığı, performans, genellik ve güvenlik yer alıyor.
  • Bir önizleme sanal iş parçacıkları, yüksek verimli, eşzamanlı uygulamaları yazma, koruma ve gözlemleme çabasını önemli ölçüde azaltan hafif iş parçacıklarıdır. Hedefler, istek başına basit iş parçacığı stilinde yazılmış sunucu uygulamalarının optimuma yakın donanım kullanımıyla ölçeklenmesini sağlamak ve aşağıdakileri kullanan mevcut kodu etkinleştirmektir. java.lang Minimum değişiklikle sanal iş parçacıklarını benimsemek ve mevcut JDK araçlarıyla sanal iş parçacıklarının sorun giderme, hata ayıklama ve profil oluşturma işlemlerini etkinleştirmek için iş parçacığı API’si. Java’daki temel eşzamanlılık modelini değiştirmek veya Java dilinde veya Java kitaplıklarında yeni bir veri paralellik yapısı sunmak bu teklifin bir amacı değildir. Ayrıca, iş parçacıklarının geleneksel uygulamasını kaldırmak veya sanal iş parçacıklarını kullanmak için mevcut uygulamaları sessizce geçirmek de bir amaç değildir.
  • Üçüncü bir önizleme anahtar ifadeleri ve ifadeleri için desen eşleştirmedesen eşleştirmesini genişletme switch, bir ifadenin her biri belirli bir eyleme sahip bir dizi kalıba karşı test edilmesini sağlamak için karmaşık veri yönelimli sorgular kısa ve öz ve güvenli bir şekilde ifade edilebilir. Bu yetenek daha önce JDK 17 ve JDK 18’de önizlendi. Üçüncü önizleme, korumalı kalıpların yerine when içindeki maddeler switch bloklar. Ayrıca, seçici ifadesinin değeri boş olduğunda bir model anahtarının çalışma zamanı semantiği, eski ile daha yakından hizalanır. switch anlambilim. Planın hedefleri, ifadelerin ve uygulanabilirliğin genişletilmesini içerir. switch durum etiketlerinde kalıpların görünmesine izin vererek ifadeler ve ifadeler. Diğer hedefler arasında, geliştiricilerin tarihsel boş düşmanlığını gevşetmelerine izin vermek yer alıyor. switch istendiğinde güvenliğinin arttırılması switch beyanlar ve mevcut switch ifadeler ve ifadeler hiçbir değişiklik olmadan derlenmeye devam eder ve aynı semantik ile yürütülür.
  • Dördüncü bir kuluçka vektör API’si Bu, desteklenen CPU mimarilerinde çalışma zamanında güvenilir bir şekilde en uygun vektör talimatlarına derlenen vektör hesaplamalarını ifade edecek ve böylece eşdeğer skaler hesaplamalardan daha üstün bir performans elde edecektir. API’yi kullanan geliştiriciler, HotSpot otomatik vektörleştiriciyi kullanarak ancak vektörleştirmeleri daha öngörülebilir ve sağlam hale getiren bir kullanıcı modeliyle Java’da karmaşık vektör algoritmaları yazmanın bir yolunu elde eder. Vektör API’si daha önce JDK 16, JDK 17 ve JDK 19’da inkübe edildi.
    JDK 19 için önerilen API’de yapılan iyileştirmeler, vektörleri yükleme ve depolamaya yönelik geliştirmeleri içerir. MemorySegments, Yabancı İşlev ve Bellek API önizlemesi tarafından tanımlandığı gibi. JDK 19 ayrıca tamamlayıcı bir vektör maskesi sıkıştırma işlemiyle birlikte sıkıştırma ve genişletme olmak üzere iki çapraz şerit vektör işlemi ekler. Sıkıştırma vektörü işlemi, bir maske tarafından seçilen bir kaynak vektörün şeritlerini şerit sırasına göre bir hedef vektöre eşler, genişletme işlemi ise tersini yapar. Sıkıştırma işlemi, sorgu sonuçlarını filtrelemede kullanışlıdır.
    Vektör API’sine başka bir ek olarak, bir bitin sayısını sayma, bit sırasını tersine çevirme ve bitleri sıkıştırma ve genişletme gibi işlemler de dahil olmak üzere, bit düzeyinde integral şeritli işlemler genişletilecektir. API’nin hedefleri, açık ve özlü olmak, platformdan bağımsız olmak, x64 ve AArch64 mimarilerinde güvenilir çalışma zamanı ve derleme performansına sahip olmak ve bir vektör hesaplamasının bir dizi olarak çalışma zamanında tam olarak ifade edilemediği durumlar için “zarif” bozulmayı sağlamaktı. vektör işlemleri.
  • Linux/RISC-V bağlantı noktası ile Java, çok çeşitli dil araç zincirleri tarafından zaten desteklenen bir donanım komut seti için destek kazanacaktır. RISC-V aslında ilgili ISA’ların bir ailesidir. Linux/RISC-V bağlantı noktası, yalnızca vektör talimatlarını içeren genel amaçlı bir 64-bit ISA olan RISC-V’nin RV64GV yapılandırmasını destekler. Java geliştiricileri gelecekte diğer RISC-V yapılandırmalarını değerlendirebilir.

Bağlantı noktası şu HotSpot VM seçeneklerini destekleyecektir: şablon yorumlayıcı, C1 (istemci) JIT derleyicisi, C2 (sunucu) JIT derleyicisi ve ZGC ve Shenandoah dahil tüm mevcut ana hat çöp toplayıcıları. Gerçek taşıma işlemi neredeyse tamamlandı; JDK Geliştirme Önerisinin (JEP) odak noktası, bağlantı noktasının JDK ana hat deposuna entegrasyonudur.

JDK 18 gibi, JDK 19 da yalnızca altı aylık üst düzey, Premier destek.

Önceki sürüm olan JDK 17, birkaç yıllık desteğe sahip bir Uzun Vadeli Destek (LTS) sürümüydü. 14 Eylül 2021’de geldi.

Telif Hakkı © 2022 IDG Communications, Inc.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.