Java'nın en son revizyonu, diğer iyileştirmelerin yanı sıra, Kayıtlar için bazı yararlı sözdizimleri sunar.

Java programlama dünyası sürekli gelişiyor ve zanaatınızda mükemmelleşmek için güncel kalmanızı gerektiriyor.

Java 21, eşzamanlılığa, toplama işlemlerine ve kayıtlarla çalışmaya yaklaşımınızda devrim yaratan bir dizi heyecan verici geliştirme getiriyor.

Sanal Konular Tanıtımı

Sunucu uygulamalarını ölçeklendirme, iş parçacıklarının genellikle darboğaz haline gelmesiyle birlikte her zaman zorluklar sunmuştur. Sınırlı sayıda iş parçacığı, engellemeyi kaldırmak için sık sık olay veya kilit beklemeyle birleştiğinde genel performansı engeller.

Geçmişte, bu sorunu ele almak, aşağıdaki gibi yapıları kullanmayı içeriyordu: TamamlanabilirGelecek veya reaktif çerçeveler, anlaşılması ve bakımı zor olan kıvrımlı kodla sonuçlandı.

Neyse ki Java 19, Java 21'in JDK Enhancement Proposal 444 aracılığıyla iyileştirdiği ve sağlamlaştırdığı sanal iş parçacıklarını bir önizleme özelliği olarak tanıttı.

Sanal iş parçacıkları, ölçeklenebilirlik zorluklarını daha etkin bir şekilde çözmenize izin vererek oldukça umut verici bir alternatif sunar. Bu, sunucu uygulamalarının gelişmiş performansına ve gelişmiş yanıt verme hızına yol açar.

instagram viewer

Sıralı Koleksiyonlar Daha Kullanışlı

Geleneksel olarak, Java programlamanızda bağlantılı listeleri kullanma oldukça ayrıntılı bir kod gerektirdi. Örneğin, son öğeyi getirmek için şu hantal yaklaşımı kullanmalısınız:

var son = list.get (list.size() - 1);

Ancak, Java 21 kısa ve zarif bir alternatif sunar:

var son = liste.getLast();

Benzer şekilde, bir LinkedHashSet'in ilk öğesine erişmek için bir dolambaçlı yol gerekir:

var ilk = linkedHashSet.iterator().next();

Ancak Java 21 ile bu görev çok daha basit hale geldi:

var ilk = linkedHashSet.getFirst();

Yeni kullanarak bir LinkedHashSet'in son öğesine de erişebilirsiniz. Son olsun tüm küme boyunca yinelemeyi önleyen yöntem.

Sıralı koleksiyonlardaki bu iyileştirmeler yalnızca kod okunabilirliğini artırmakla kalmaz, aynı zamanda öğe alımını düzene sokarak Java programlamayı daha verimli ve geliştirici dostu hale getirir.

Kolaylık için Kayıt Kalıpları

Java 19'da bir önizleme özelliği olarak tanıtılan Kayıt Kalıpları, Java'da bir kaydın alanlarına açık atamalara veya erişim yöntemlerine ihtiyaç duymadan erişmek için uygun bir mekanizma sunar.

ile sinerji oluştururlar instanceof için Desen Eşleştirme Ve Anahtar için Desen Eşleştirme, kodu önemli ölçüde basitleştirir ve genel okunabilirliği artırır.

İşte bu kavramın bir örneği, adında basit bir kayıtla Konum:

halk kayıt Konum(int X, int y){}

Önceden, bir nesnenin sınıfına göre farklı eylemler gerçekleştirmek için şunu kullanmak gerekiyordu: instanceof için Desen Eşleştirme, aşağıdaki kod parçacığında örneklendiği gibi:

halkgeçersizYazdır(nesne o){
eğerörneği Pozisyon p) {
System.out.printf("o bir konumdur: %d/%d%n", p.x(), p.y());
} başkaeğerörneği Teller) {
System.out.printf("o bir dizedir: %s%n", S);
} başka {
System.out.printf("o başka bir şey: %s%n", Ö);
}
}

İle Kayıt Kalıpları, artık aşağıdaki gibi bir kayıt modelini doğrudan eşleştirebilirsiniz Konum (int x, int y) kullanmak yerine Pozisyon p model. Bu, değişkenlere erişmenizi sağlar X Ve y ihtiyacını ortadan kaldırarak doğrudan kodda p.x() Ve p.y():

halkgeçersizYazdır(nesne o){
eğer (Ö örneğiKonum(int X, int y)) {
System.out.printf("o bir konumdur: %d/%d%n", x, y);
} başkaeğerörneği Teller) {
System.out.printf("o bir dizedir: %s%n", S);
} başka {
System.out.printf("o başka bir şey: %s%n", Ö);
}
}

Ayrıca, kullanabileceğiniz Kayıt Kalıpları ile birlikte Anahtar için Desen Eşleştirme, kodunuzu daha da basitleştirmek için:

halkgeçersizYazdır(nesne o){
anahtar (Ö) {
davaKonum(int X, int y) -> Sistem çıkışı.printf("o bir konumdur: %d/%d%n", x, y);
dava Dize s - > System.out.printf("o bir dizedir: %s%n", S);
varsayılan -> System.out.printf("o başka bir şey: %s%n", Ö);
}
}

İç İçe Kayıt Modelleri alanları kendileri kayıt olan kayıtları eşleştirmenize izin verir. Örneğin, adlı bir kaydı düşünün. Yol içeren bir itibaren Ve ile konum:

halk kayıt Yol(Pozisyondan, Pozisyona){}

Kayıt kalıplarını kullanarak, bir Yol nesne daha özlü hale gelir:

halkgeçersizYazdır(nesne o){
anahtar (Ö) {
davaYol(Pozisyondan, Pozisyona) -> Sistem çıkışı.printf("o bir yoldur: %d/%d -> %d/%d%n", from.x(), itibaren.y(), ile.X(), ile.y());
// diğer durumlar
}
}

Yardımıyla Kayıt Kalıpları, farklı türdeki alanlarla kayıtları işlemek daha belirgin ve okunabilir hale gelir. Kayıtları değiştirdiğinizi varsayalım, Konum2D Ve Konum3D, Neresi Konumbir Java arabirimidir her ikisi de uygular:

halk Mühürlü arayüzKonumizinlerKonum2D, Konum3D{}
halk kayıt Konum2D(int X, int y) pozisyonu uygular {}
halk kayıt Konum3D(int X, int y, int z) pozisyonu uygular {}
halk kayıt Yolu < P, Konumu genişletir > (P'den P'ye, P'den) {}

2B ve 3B yollar için yazdırma davranışını ayırt etmek üzere kayıt modellerini kullanabilirsiniz:

halkgeçersizYazdır(nesne o){
anahtar (Ö) {
davaYol(Pozisyon2D'den Pozisyon2D'ye) -> Sistem çıkışı.printf("o bir 2B yoldur: %d/%d -> %d/%d%n", from.x(), itibaren.y(), ile.X(), ile.y());
davaYol(Pozisyon3D'den, Pozisyon3D'ye) -> Sistem çıkışı.printf("o bir 3B yoldur: %d/%d/%d -> %d/%d/%d%n", from.x(), itibaren.y(), itibaren.z(), ile.X(), ile.y(), ile.z());
// diğer durumlar
}
}

Kayıt modelleri, farklı türde alanlar içeren kayıtlarla uğraşırken ayrıntıyı önemli ölçüde azaltır ve kod okunabilirliğini artırır.

Java 21 ile Yeni Olanakların Kilidini Açın

Java 21, Java programlama dilinin yeteneklerini artıran bir dizi güçlü özellik sunar. Bu geliştirmeleri benimseyerek geliştirme süreçlerinizi kolaylaştırabilir ve uygulamalarınız için yeni olasılıkların kilidini açabilirsiniz.

En son dil özellikleri ve Java çerçeveleri ile güncel kalmak, Java programlamanın öncüsü olarak kalmanızı sağlayarak, verimli ve bakımı yapılabilir bir kod sürdürmenizi sağlar.