Java Geliştirme Kiti 19, bu Eylül’de onun için önerilen yedinci bir özelliğe sahipti: JDK 19: çok iş parçacıklı programlamayı basitleştirmek için yapılandırılmış eşzamanlılık. Yapılandırılmış eşzamanlılık, kayıt kalıpları, bir yabancı işlevin ve bellek API’sinin önizlemesi ve açık kaynaklı Linux/RISC-V komut kümesi mimarisi (ISA) desteği dahil olmak üzere önceki altı özelliği birleştirir.
JDK 19 veya basitçe Java 19, Java’yı geliştirmeye yönelik planlara göre, potansiyel olarak evrensel jeneriklerden değer nesnelerine kadar çok sayıda özelliği barındırabilir. JDK 19, 22 Mart’ta gelen JDK 18’i takip edecekti. Standart Java, altı aylık bir yayın temposunda.
OpenJDK’nın geliştiricileri, 20 Eylül’de üretim sürümü olarak gelecek olan JDK 19 için resmi bir sürüm programı yayınladı, öncesinde 9 Haziran ve 21 Temmuz rampa aşamaları ve 11 Ağustos ve 25 Ağustos’ta yayınlanacak sürüm adayları.
JDK 19’un erken erişim yapılarına şuradan erişilebilir: jdk.java.net/19. Önerilen JDK 19 özellikleri şunları içerir:
- Yapılandırılmış eşzamanlılık, 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:
instanceof
JDK 16’da Mart 2021’de teslim edildi. Gelecek planlar, dizi kalıpları vevararg
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 odaklı sorgular kısa ve güvenli bir şekilde ifade edilebilir. Bu yetenek daha önce JDK 17 ve JDK 18’de önizlendi. Üçüncü önizleme, korumalı kalıpların yerinewhen
içindeki maddelerswitch
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 ifade edilebilirliğini ve uygulanabilirliğini genişletmeyi içerir.switch
durum etiketlerinde kalıpların görünmesine izin vererek ifadeler ve ifadeler. Diğer hedefler arasında, geliştiricilerin geçmişteki sıfır düşmanlığını gevşetmesine izin vermek yer alıyor.switch
istendiğinde güvenliğinin arttırılmasıswitch
beyanlar ve mevcutswitch
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 kuluçkalanmıştır.
JDK 19 için önerilen API’ye yönelik iyileştirmeler, vektörleri gelen ve giden vektörleri yüklemek ve depolamak için 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şlerken, genişletme işlemi 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.
Kaynak : https://www.infoworld.com/article/3653331/jdk-19-the-new-features-in-java-19.html#tk.rss_all