Java 21 son yıllarda en ilginç sürümlerden biridir

Portakalkafa

Global Mod
Global Mod


  1. Java 21 son yıllarda en ilginç sürümlerden biridir

15 JEP (JDK Geliştirme Teklifleri) ile OpenJDK 21, uzun zamandır olmayan tüm konuları getiriyor. Ayrıca Java geliştiricileri için içerik açısından birçok ilginç özelliğe sahiptir. Desen yazışmaları, sanal iplikler, vektör arıları veya yabancı fonksiyon ve bellek arıları dahil olmak üzere bazı işlevler uzun zamandır devam etmektedir. Taraflar desenler ve sanal iş parçacıkları ile yazışmaya yönelik olsa da, diğer yönler önizleme veya kuluçka modunda kalır. Bununla birlikte, dize modelleri, “isimsiz sınıflar ve ana istek yöntemleri” (her ikisi de önizleme olarak) ve sıralı koleksiyonlar gibi tamamen yeni konular geliştiriciler için özellikle heyecan vericidir.








EMBARC Software Consulting GmbH'de Falk Sippach her zaman katılımcılar, müşteriler ve meslektaşları hakkında tutkulu uyandırabilecek Tutku Spark'ı arıyor. Java ortamındaki çoğu çevik yazılım geliştirme projesini 15 yılı aşkın bir süredir desteklemektedir. Topluluğun aktif bir parçası olarak (Juug Darmstadt'ın ortak organizatörü), bilgilerini makalelerde, blog yayınlarında ve konferans derslerinde veya kullanıcı gruplarında paylaşmayı seviyor ve çeşitli uzman etkinliklerin organizasyonunu destekliyor. Falk @sippsack altında tweet attı.







Modelin yazışmaları artık verimli bir şekilde kullanılabilir


Desenlerin yazışması, verimli ve bekleme yolunda karmaşık farklılıklar uygulamak için mevcut yapıların modellerle karşılaştırılmasından oluşur. Project Amber'in bir parçası olarak birkaç yıl geliştirildi. LTS (OpenJDK 17) desteği ile en son sürüme kadar, yalnızca anahtar ifadeleri, mühürlü sınıflar, nedenlerin kaydı ve yazışması gibi temel işlevler tamamlanmıştır. Java 21 ile şimdi verimli bir şekilde kullanılabilir. Kayıt modelleri ve anahtar nedeninin yazışması ile iki önemli yapı bloğu sonuçlandırılmıştır. Kayıt modelleri, kaydı kıran ve aynı zamanda bileşenlerine bölünen yeni bir model türüdür, böylece bileşenler doğrudan çalışmaya devam edebilir. Anahtarlar desenlerinin yazışmasıyla, önceki tüm işlevler bir araya getirilir, böylece anahtarın ifadesinde, anahtarın ifadesinde When-Clauss (daha önce tutulan nedenler olarak adlandırılır) dahil olmak üzere tip modelleri ve kayıtları da kullanmak mümkündür. İsimsiz modeller çok taze (21'de önizleme olarak tanıtıldı). Bu, yer tutuculara izin verir (altı çizili _) Modeller değerlendirilmemelise. Bu, kodu daha kompakt, daha iyi okunabilir ve hatalara daha az eğimli hale getirir (ölü koddan kaçının). Bu yapı, yakalama bloklarında veya SO -Called isimsiz değişkenler gibi lambda parametreleri için de kullanılabilir.

Sanal iş parçacıkları Java'yı Gelecek Yapıyor –


Birçok uzman, doğrudan bir dizi jenerik, lambda ifadesi ve platform modül sisteminde yer alan Java tarihinin en önemli özelliklerinden biri için coşkusunu kabul eder ve gösterir. Sanal iplikler çok daha fazla sayıda eşzamanlı iplik sağlar. Özellikle kaynak tüketimi söz konusu olduğunda, klasik platform ipliklerinin önüne sahipsiniz. Sonuç olarak, sanal iş parçacıklarının çok daha fazlası (teorik olarak milyonlarca), VM'nin bellek sınırlarını hemen itmeden bir işlemde başlatılabilir. Bu, CPU'nun daha iyi kullanılmasına izin verir. Bununla birlikte, çoğu Java geliştiricisi yardımcı programlama ve sanal iş parçacıkları ile doğrudan temasa geçmeyecektir. Bununla birlikte, bundan yararlanırsınız çünkü çerçeve üreticileri (Jump, Quark, …) sanal telleri kaputun altına dahil edecektir. Bu, özellikle web uygulamaları için daha iyi kullanıma izin verir, çünkü aynı anda gelen kullanıcılar için daha fazla istek işlemek mümkündür. Ancak frenler bana erişiyor (örneğin veritabanında). Bununla birlikte, talepler çok ucuz bir şekilde (daha düşük bellek tüketimi) oluşturulabileceğinden ve yönetilebildiğinden ve çok daha fazlası aynı anda yönetilebildiğinden, mevcut kaynaklar daha iyi kullanılabilir.

Şimdi tamamlanan sanal iş parçacığı alanında, yine bir önizleme, yapılandırılmış rekabet ve büyütülmüş değerler olarak yayınlanan iki işlev var. İkincisi, dişlokal değişkenlere daha iyi bir alternatiftir. Ve yapılandırılmış rekabet, farklı kısmi görevlerin özellikle bir leesing ve bekleyen bir şekilde paralel olarak detaylandırılmasına izin verir.

En küçük konular java geliştiricilerini mutlu ediyor


İşlev aralığı ile yönetilebilen bazı özellikler, Java 21'in piyasaya sürülmesinde şaşırtıcı bir şekilde ortaya çıktı. Dize modelleri özellikle heyecan verici. Sadece Java dünyasında uzun bir bekleme ile ipin enterpolasyonunu getirmekle kalmaz. Gelecekte, uygulama, örneğin nesneler üretebilen veya veritabanı sorgusunu, örneğin alan sahiplerine sahip metinlerden hazırlanan veritabanı sorgusunu garanti edebilen kolay bir şekilde oluşturulmasına izin verecektir.

Sıralı koleksiyonlar, öğeleri iyi tanımlanmış bir sırayla düzenlenmiş koleksiyonlar için bir avuç yeni yöntem getirir. Bunlar, ilk veya son öğede ve dönüm noktasında okuma ve yazmaya (kaldırma dahil) erişim (reversed()). Bu, hala kullanılan koleksiyon çerçevesini daha da güncelledi.






BetterCode () Java 21 LTS 4 Ekim'de gerçekleşecek. Çevrimiçi konferansta, her şey programlama dilinin yeni LTS (uzun vadeli destek) sürümü etrafında dönüyor. İle ilgili Ix VE dpunkt.verlag Hizalanmış temalı gün, yedi dersde temel yeniliklerle ilgileniyor. Ayrıca OpenJDK'nın perde arkasına bir göz atıyor.







Gelecekte Java yeni başlayanlar için de daha kolay olacak. Yürütülebilir bir sınıf oluşturmak için, class,, static,, public,, String[] args vb. Anlayın. “JEP 445: Örneğin Sınıfları ve Ana Yöntemleri (Önizleme)” ile şimdi yürütülebilir olabilirsiniz main-Modi en kısa ve en özlü yöntemleri tanımlar ve hatta kapalı bir sınıftan vazgeçer. JDK 11'de yayınlanan “Başlatma Kaynak Programları” ile birlikte, çok ince küçük Java uygulamaları basit bir metin dosyasında mevcuttur. void main(){}-Tomy komut satırından. Bu aynı zamanda uzman Java geliştiricilerine de fayda sağlar.

Başka ne oldu


Vektör arılar kalıcı bir koşucudur ve bu kez altıncı inkübatör olarak (önizlemenin ön aşaması) Java 16'dan versiyonlarda düzenli olarak ortaya çıkmıştır. SIMD bilgisayar mimarisinin vektör işlemcileriyle modern olanaklarının desteğidir. Tek Eğitim Öğretimi Multipal Öğretim (SIMD), aynı anda farklı verileri işleyen birkaç işlemciye sahiptir. Donanım paralelleştirmesi, SIMD prensibinde aritmetik öğütme çabasını azaltır.

Yabancı İşlev ve Bellek API'sı da bu kez üçüncü önizlemede bazı sürümler için gemideydi. Java dünyasına uzun süre seyahat ederseniz, yerel Java Arayüzünü (JNI) bileceksiniz. Java'nın doğal C kodu geri çağrılabilir. Yaklaşım nispeten karmaşık ve kırılgandır. Yabancı işlevin arısı, yalnızca yerel koda Java'ya dayanan statik olarak yazılmış erişim sunar (kitapçılar c). Yabancı belleğe erişim API'si ile birlikte, bu arayüz daha önce hatalara eğimli olan süreci önemli ölçüde basitleştirebilir ve yerel bir kitapçıyı yavaşça bağlayabilir. İkincisi ile Java uygulamaları, yığınların dışında daha fazla bellek tahsis etme fırsatına sahiptir. Yeni arıların amacı yüzde 90 uygulama çabasını azaltmak ve faktörün performansını 4'ten 5'e hızlandırmaktır. Her iki arı da JDK'da JDK 14 veya 16'dan 18'den 18'den ortak bir inkübatör JEP olarak bireysel olarak dahil edilmiştir. Bu fonksiyon muhtemelen kesinleşmeye yavaş yavaş yaklaşacaktır.

Çöp toplayıcılarında bir şeyler değişti. ZGC (OpenJDK 15'te tanıtılan ölçeklenebilir düşük gecikme çöp koleksiyoncusu birkaç yıl önce yeni bir neslin bir parçasıdır. Amaç, büyük miktarlarda veriyi (RAM TB) mümkün olan en kısa GC molalarıyla temizlemektir (10 ms'den daha az) ve bu nedenle uygulamayı her zaman hazır tutar. Şimdiye kadar, şimdiye kadar, ZGC'nin taze ve mevcut nesneler arasında daha fazla yargılanması, daha fazla yargılamaya devam etmedi. Gelecekte uzun bir süre yaşayın (eski nesil).

Geliştiriciler için çok alakalı olmayan başka JEP'ler de var. Birçok ayrıntı için, sürüm notlarına da göz atmaya değer. JDK'daki (Java Sınıf Kütüphanesi) değişiklikler de Almanac Java'da çok iyi görülebilir. Bu genel bakışta, dize modelleri ve sıralı koleksiyonlar için tüm yenilikleri bulabilirsiniz. Dize sınıfında da küçük uzantılar vardı: örneğin, yöntem indexOf(String str, int beginIndex, int endIndex) Belirli bir alanda kısmi bir ip aradığını tanıttı. Sınıflar StringBuffer VE StringBuilder bir işaret veya karakter zincirini mevcut nesneye tekrarlayan iki benzer yöntemle genişletilmiştir: repeat(CharSequence, int). Sınıf Character Buna karşılık, bir Unicode işaretinin emojisini veya bir varyantını temsil edip etmediğini kontrol etmek için çeşitli yöntemler genişletilmiştir. Yani Java zamanla buraya gidiyor.

Çözüm


Java-21 sürümüne ayrıntılı bir genel bakış, yeni yayınlanan Makale IX'da mevcuttur. Sanal iş parçacıklarını sonlandıran Java 21, birkaç yıl içinde Java 5 (Geners), Java 8 (Lambdas, Stream-AAPI) ve Java 9 (platform modül sistemi) ile bir seviyede konumlandırılacaktır. Bu fikrin potansiyeli henüz tam olarak kavrilemese de, sanal iplikler gelecekte yüksek ölçeklenebilir sunucu uygulamaları uygulayacaktır. Ancak Java 21'in başka birçok belirgin noktası var. Desenlerin yazışmasında, çekirdek (anahtar için desenlerin yazışması) ve kayıt modelleri hedeflenmiştir ve her zamansal olmayan modeller bir önizleme olarak tanıtılmıştır. Dize modelleri (şu anda bir önizleme olarak) ve sıralı koleksiyonlar da Java geliştiricileri için hayatı kolaylaştırır. Bu, Mart 2024'te bir sonraki sürüm için beklentiyi zaten artırıyor.


(RME)
 
Üst