Java12 hakkında her şey – Yeni Özellikler, Güvenlik ve Anahtar İfade Beyanı (Örnekler)

Yayınlanan: 2019-04-07

Java 12 - Tüm yeni şeyler - Crunchify'dan Ayrıntılar

19th March 2019 Java12 yayınlandı. Java12'nin hızlı sürümün bir parçası olduğunu bildiğimiz gibi, Java12 yayınlanmasından sadece 6 ay sonra yayınlandı.

Bu eğitimde Java12 ile ilgili tüm değişiklikleri ve yeni özellikleri gözden geçireceğiz.

Şahsen tüm geliştirmem için Java12'ye geçtim ama üretim döngüsü için çok erken. Tüm üretim projeleriniz için Java12'ye geçmek istediğinizde bu öğreticiyi işaretli tutun.

Java12'deki yenilikler neler? Java12'deki yeni özellikler:

Java12'de değişen, dahili ve kullanıcı iş akışıyla ilgili birkaç özellik vardır. Java 12'nin içinde neler olduğuna bir göz atalım.

Değişiklik-1) Eşzamanlı Sınıf boşaltma

Normal Çöp Toplayıcı genellikle GC döngüsü sırasında kullanılmayan değişkeni kaldırır ve genellikle süreçte bir miktar durma/duraklama veya bu süre zarfında CPU artışı fark ederiz. Genellikle bunu fark etmeyiz bile.

ZGC (Z Garbage Collector) ile – Java12, eşzamanlı Sınıf boşaltmayı da destekler. Bu, normal GC döngüsü sırasında gerçekleştiğinden, herhangi bir duraklama olmaz ve fazladan bellek kullanımı da olmaz.

Varsayılan olarak ZGC, Java12'de etkinleştirilmiştir. Daha fazla işlem gerekmez

ZGC nasıl devre dışı bırakılır?

  • Uygulamanızı JVM komut satırı argümanı -XX:-ClassUnloading ile başlatmanız yeterlidir.

Değişiklik-2) JVM Crash hakkında daha fazla ayrıntı alın

Bir OOM (Bellek Yetersiz) hatası olduğunda veya JVM çöktüğünde, genellikle Java tüm ayrıntıları içeren döküm dosyaları oluşturur.

Bu JVM parametreleri ile OOM hatasında /tmp/crunchify/ klasörü altında Dump dosyaları oluşturulacaktır.

Java12'ye eklenen bir seçenek daha var:

JVM çökmesi ile ilgili tüm ayrıntıları içeren hs_err<pid>.log adlı yeni günlük dosyası oluşturulacak. Bu, sık sık çökme görüyorsanız ve daha fazla hata ayıklamak istiyorsanız, üretim ortamınız için çok yararlıdır.

Varsayılan olarak devre dışıdır, ancak JVM komut satırı parametresinin üstüne ekleyerek kapsamlı kilitlenme raporunu etkinleştirebilirsiniz.

Değişiklik-3) Kompakt Sayı Biçimlendirme

java.text, kompakt Sayı biçimi için destek ekler. 100o , 1K olarak ve 100000 , 100K olarak bahsedilebilir.

Sonuç:

Değişiklik-4) Java Güvenlik Geliştirmeleri

security-libs/java.security değişiklikleri:

  • Java.security.manager için Seçeneklere izin verme ve izin verme
    • disallow , Sistem. setSecurityManager , güvenlik yöneticisini ayarlamak için kullanılamaz.
  • -groupname Seçeneği Keytool Anahtar Çifti Oluşturma eklendi
    • bir kullanıcı, bir anahtar çifti oluştururken adlandırılmış bir grup belirleyebilir.
  • PKCS12 keystore Üretimini özelleştirme
    • için algoritmalar ve parametreler içerir.
      • anahtar koruması
      • sertifika koruması
      • MacData
  • Yeni JFR Güvenlik Olayları
    • JFR (Java Uçuş Kaydedici) Nedir?
    • 4 yeni JFR etkinliği eklendi
      • jdk.X509Sertifika
      • jdk.X509Doğrulama
      • jdk.TLSHandshake
      • jdk.SecurityPropertyDeğiştirme

Değişiklik-5) JEP 325: İfadeleri Değiştir

Crunchify'dan JEP 325 Anahtar İfadeleri Eğitimi

Gelişmiş Switch statement artık Java12'de desteklenmektedir.

  • Java 12 tabanlı case L -> syntax işlemi. Burada herhangi bir mola gerekli değildir.
  • Anahtar İfadesinin Kullanımı
    • bu basitleştirilmiş switch ifadesidir
    • bir etiket eşleştirilirse, yalnızca ok etiketinin sağındaki ifade yürütülür.
    • Break ifadesine gerek yok.

CrunchifyJava12SwitchExample.java

IntelliJ IDEA Sonucu:

Java 12 Anahtar Bildirimi Eğitimi Sonucu - Crunchify

Değişiklik-6) JVM Sabitleri API'si

java.lang.invoke.constant : Bildiğiniz gibi Java sınıfı, çalışma zamanında tüm işlenenleri depolayan sabit bir havuza sahiptir.

Java12, çalışma zamanında sabitleri çağırmak için API ekler.

Java12'den kaldırılan özellikler:

Java12'den kaldırılan özellikler - Crunchify Tips

Java12'den kullanımdan kaldırılan özellikler:

Java12'de kullanımdan kaldırılan özellikler - Crunchify Tips

Java12 hakkında buraya eklemek istediğiniz kullanışlı bir öğreticiniz varsa bana bildirin.