Eğitim Portalı/Java/Java 23 Yenilikleri (2024)
Java01-java/103-java23-yenilikleri

Java 23 Yenilikleri (2024)

> ⚠️ Bu konuda çalıştırılabilir örnek yoktur. Portal JDK 21 üzerinde çalışır; Java 23+ > özellikleri burada derlenmez. Kod parçacıkları JDK 23 gerektirir, tanıtım amaçlıdır.

Java 23 Yenilikleri (2024)

⚠️ Bu konuda çalıştırılabilir örnek yoktur. Portal JDK 21 üzerinde çalışır; Java 23+ özellikleri burada derlenmez. Kod parçacıkları JDK 23 gerektirir, tanıtım amaçlıdır.

Java 23 (Eylül 2024), LTS olmayan bir sürümdür ve ağırlıklı olarak önizleme özelliklerini ilerletti; dokümantasyon ve çöp toplamada kalıcı iyileştirmeler getirdi.

Markdown dokümantasyon yorumları (JEP 467)

Javadoc artık HTML yerine Markdown ile de yazılabilir — çok daha okunaklı:

/// Bir kullanıcıyı id'sine göre bulur.
///
/// - `id` pozitif olmalı
/// - bulunamazsa `Optional.empty()` döner
///
/// Bkz: [#kaydet(Kullanici)]
public Optional<Kullanici> bul(long id) { ... }

/// (üç eğik çizgi) ile başlayan Markdown yorumları, eski /** <p>...</p> */ HTML gürültüsünü ortadan kaldırır.

ZGC varsayılan olarak kuşak-temelli (JEP 474)

Java 21'de eklenen "generational ZGC", Java 23'te varsayılan mod oldu — düşük gecikmeli çöp toplayıcının verimi arttı.

Önizlemeler

  • Primitive Types in Patterns (JEP 455, önizleme): instanceof ve switch'te ilkel tip desenleri:
    switch (sayi) {
        case int i when i > 100 -> "büyük";   // ilkel tip deseni (önizleme)
        case int i -> "küçük";
    }
  • Module Import Declarations (JEP 476, önizleme): bir modülün tüm paketlerini tek satırda içe aktarma:
    import module java.base;   // java.base'in tüm dışa açık paketleri (önizleme)
  • Flexible Constructor Bodies (JEP 482, 2. önizleme): super() öncesi ifadeler (Java 22'deki önizlemenin devamı).
  • Stream Gatherers (JEP 473, 2. önizleme), Structured Concurrency (3. önizleme), Scoped Values (3. önizleme), Class-File API (2. önizleme).
  • sun.misc.Unsafe bellek-erişim metotları kullanımdan kaldırılmaya başlandı (modern FFM API'ye geçiş için).

Özet

Java 23'ün öne çıkanlarını gördük: Markdown Javadoc (///), kuşak-temelli ZGC varsayılanı; ilkel tip desenleri, modül import bildirimleri ve esnek constructor gövdeleri gibi önizlemeler. (Hepsi JDK 23+ gerektirir.) Sırada, sanal thread'lerin "pinning" sorununu çözen sürüm: Java 24.