Java 11-12-13 ve …

Merhabalar, Java 11 ile beraber Java kullanan herkesin hayatında önemli değişiklikler olacak. Bu yazımda onlardan bahsedeceğim.

JDK (Java Development Kit) artık her 6 ayda bir güncellenecek, bunlar da yıl içinde Mart ve Eylül aylarına denk geliyor. LTS (Long Term Support) dediğimiz “Uzun Dönem Destek” paketleri de 3 yılda bir çıkacak.

  • 2018 Eylül – Java 11
  • 2021 Eylül – Java 17
  • 2024 Eylül – Java 23
  • … gibi

Ve tabi ki ücretini ödeyen 3 seneden sonra da desteğini alabilir 🙂

Lisanslama – Oracle JDK & Open JDK

Java 11 ile artık karşımızda Oracle JDK ve Open JDK kavramları var. Bundan sonra

Oracle JDK – Oracle Binary Code License Aggrement

Open JDK – GPL2

ile lisansları ile hayatımızda yer alacak. GPL2 tamamen açık kaynak ve ücretsiz. Oracle Binary Code Lisansı ise geliştirme yaparken yine ücretsiz kullanılabilecek ama üretim (production) ortamlarına ücretli olacak.

Modası Geçen ve Kaldırılanlar

Enterprise API’lerden aşağıdakiler JDK içerisinden çıkarıldı.

  • JAXB – xml binding
  • JAX-WS – xml web services and endpoint technology
  • CORBA – distributed object technology
  • JTA – java transaction api
  • JavaBeans Activation

Detayına şu adresten ulaşabilirsiniz; https://openjdk.java.net/jeps/320

Ayrıca Thread sınıfından destroy() ve stop(Throwable obj) metodları çıkarıldı.

JDK 10 – Thread
JDK 11 – Thread

JavaFX jdk içerisinden çıkarılarak ayrı bir kütüphane haline getirildi, adı da OpenJFX oldu.

Dil ve Kütüphane Yenilikleri

JDK 9 ve 10’da deneysel olarak bulunan HTTP isteği gönderip yanıtını almak için kullanılabilen HttpClient sınıfı artık canlıda. HTTP2 desteği sunduğundan dolayı çoğu yeni proje için Java 11’e geçiş sebebi 🙂 API’yi tanımak için aşağıya bağlantılarını ekledim.

HttpClient API
HttpRequest API
HttpResponse API

 

String sınıfına yeni kullanışlı metodlar eklendi.

repeat() – herhangi bir string i tekrarlamak için
isBlank() – string in boş olup olmadığına bakar
strip() – string’in önü ve arkasındaki boşluk karakterlerini trim() metodundan farklı olarak unicode karakterleri ile temizler
lines() – string in içindeki satırları “\r\n” yani line feed ve carriage return karakterleri stream olarak almamızı sağlar

Ayrıca Files sınıfına aşağıdaki yeni metodlar gelmiş;
Unicode 10 desteği de yine JDK 11 ile geliyor.

Ben burada sadece en çok kullanabileceklerimi yazdım. Tam listeyi yazının en altına ekliyorum.

Performans ve Güvenlik İyileştirmeleri

G1 Garbage Collector ile Java 11, Java 8’e göre %60 daha iyi performans sergiliyor. Bu da yazdığımız kodda herhangi bir değişiklik yapmadan Java 11’e geçirsek bile daha iyi bir performans alabileceğimizin göstergesi.

Ayrıca Epsilon GC ve Z GC adında iki yeni GC eklendi. İkisi de henüz deneysel.

Epsilon Garbage Collector, performans ölçüm amaçlı kullanılabilir, aşağıdaki parametrelerle açılabiliyor.
XX:+UnlockExperimentalVMOptions
XX:+UseEpsilonGC

Z Garbage Collector, multi-terabytes heap e çıkmayı sağlıyor. Sadece 64 bit Linux makinelerde çalışıyor.
XX:+UnlockExperimentalVMOptions
XX:+UseZGC

Güvenlik konusuna gelirsek, TLS 1.3 desteği sağlanmış ve eski güvenliğini kaybetmiş kriptografik algoritmalar çıkarılmış ve yeni daha güvenli algoritmalar eklenmiş. Handshake sırasındaki ilk mesaj hariç hepsi şifrelenmiş. Detaylarına aşağıdaki linkten erişilebilir.
https://openjdk.java.net/jeps/332

Son olarak Oracle’ın açıkladığı Java 11 değişiklikler listesi bağlantıdadır.

Şükrü Çakmak hakkında

1987 - insanı sever...
Bu yazı Java kategorisine gönderilmiş ve , , , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir