Java 25 / JDK 25 resmen yayımlandı
(openjdk.org)- Java 25 ve onun referans implementasyonu JDK 25 resmi olarak yayımlandı
- Bu sürüm, yeni 18 JEP (Java Enhancement Proposal) özelliği içeriyor
- x86 32 bit portunun kaldırılması, Scoped Values, Structured Concurrency, Primitive Types iyileştirmeleri gibi önemli değişiklikler uygulandı
Java 25 / JDK 25: Resmi yayımlanma
- Java 25’in referans implementasyonu olan JDK 25, resmi olarak üretim dağıtımı sürümü olarak yayımlandı
- 15 Ağustos 2025’te ikinci sürüm adayı olan build 36 sunuldu ve o tarihten bu yana kritik (P1) hata raporu yok.
- build 36, nihai GA (General Availability) sürümüdür ve üretim ortamlarında da kullanılabilir
- GPL lisanslı OpenJDK derlemeleri Oracle tarafından resmi olarak sunuluyor; diğer birçok tedarikçinin derleme sürümlerinin de yakında dağıtılması bekleniyor
OpenJDK resmi indirme bağlantısı
Başlıca özellikler ve iyileştirmeler
Bu sürümde 18 JEP (Java Enhancement Proposal) yer alıyor
- 470: PEM tabanlı kriptografik nesne kodlaması (preview)
- 502: Stable Values (preview)
- 503: x86 32 bit portunun kaldırılması
- 505: Structured Concurrency (5. preview)
- 506: Scoped Values
- 507: pattern, instanceof ve switch içinde Primitive Types desteği (3. preview)
- 508: Vector API (10. incubator sürümü)
- 509: JFR CPU zaman profillemesi (deneysel özellik)
- 510: Key Derivation Function API
- 511: Module Import bildirimi
- 512: Compact Source Files ve instance main method
- 513: Flexible Constructor Bodies
- 514: Ahead-of-Time komut satırı optimizasyonu
- 515: Ahead-of-Time method profillemesi
- 518: JFR iş birlikçi örnekleme
- 519: Compact Object Headers
- 520: JFR method zamanlaması ve izleme
- 521: Generational Shenandoah
Bu sürümde yukarıdaki JEP’lere ek olarak yüzlerce küçük özellik iyileştirmesi ve binlerce hata düzeltmesi de yer alıyor
Sürüme ilişkin ayrıntılı bilgiler ve JEP detayları için
OpenJDK JDK 25 proje sayfası incelenebilir
3 yorum
Geçen yıl gelen soytarı ölmemiş, yine gelmiş, hey gidi hey başlıyor... Sen niye sürekli ortaya çıkıyorsun?
Bu özellik aslında JDK24 ile gelmişti; ancak Java’da genelde yalnızca LTS sürümleri kullanıldığı için,
synchronizedanahtar sözcüğü kullanılırken sanal iş parçacıklarında pinning sorununu ortadan kaldıran JEP 491: Synchronize Virtual Threads without Pinning de dikkat çekmeye değer.Sanal iş parçacıklarında gerçek dünya benchmark’larının zaman zaman daha yavaş çıktığı oluyordu ve bunun çoğu durumda nedeni pinning’di.
Hacker News görüşleri
nbbscript'leri de hemen hiç sorun çıkarmadan çalışıyor; bazen yalnızcanpmbağımlılıklarını biraz elden geçirmek gerekiyor. Buna karşılık Python'da bağımlılık sorunları vevenvyönetimi yüzünden yarım gün harcadığım oldu.superçağrısından önce parametre doğrulama ve dönüştürmeye izin verilmesinin bu kadar uzun sürmesine şaşırdım. Eskiden beri sezgiye aykırı gelen bir noktaydı.validatesüreci içinstaticfonksiyonlarısuperparametrelerinde kullandıysanız, çağrı fiilensuperöncesinde yapılmış oluyordu ve derleyici de buna itiraz etmiyordu.importsistemi kişisel olarak pek hoşuma gitmiyor.import *gibi sözdizimleri kod yazarken kolay olsa da okumayı çok daha zorlaştırıyor; özellikle de dile ya da kod tabanına yabancı geliştiriciler için. C# ve Nim de bu tarzda, IDE olmadan neredeyse okunmuyor. Bu yüzden Python'daki gibi kısa takma ad örneklerini (import torch.nn.functional as F) daha iyi buluyorum.importile ilgili temel sorun "bu nereden geldi?" sorusudur. Açıkça belirtilmişimport'lar kesinlikle gerekli. Özellikle derleme bozulduğunda veya bağımlılık sürümleri karıştığında bu daha da önemli oluyor. Küçük kod tabanlarında ise çok fark etmiyor. Zaten günümüz editörleriimportsatırlarını gizlediği için onları doğrudan pek görmüyorsunuz; koda tıklayıp ya da kısayolla doğrudan tanıma gittiğiniz içinimportkısmına fazla dikkat etmiyorum.csprojveyaslndosyalarını asla VSCode ile açmam. Bu arada Visual Studio'yu buradan 500 dolara kalıcı lisansla satın alabiliyorsunuz ve ayrı bir abonelik gerekmiyor.async/awaitgibi fazla şekerli bir yapıdan ziyade gerçek bir ilerleme olmasını umuyorum. Yalnızca örneklere bakınca henüz ikna olmuş değilim ama biraz daha izleyeceğim.jdk17ile yapmıştım ve neredeyse aynısıjdk21'de de çalıştı; yalnızcaguiceiçin major sürüm yükseltmesi gerekti. Bu arada Java yerine başka bir JVM dili kullanmış olmam da muhtemelen yardımcı oldu.sunpaketleri gibi resmî olmayan şeyleri çok kullanmıştık;javax'tenjakarta'ya geçiş de yük getirdi. O eşiği bir kez aşınca 21 veya 25'e gitmek kolay geliyor. Bundan sonra güncel sürümleri düzenli takip etmenin eskisine göre daha kolay olmasını bekliyorum.NullPointerExceptionsık görülüyor. Kotlin'i sevmiyorsanız C# da iyi bir seçenek. Ama Java da hâlâ gayet kullanılabilir.