Segala sesuatu tentang Java12 – Fitur Baru, Keamanan, dan Pernyataan Ekspresi Switch (Contoh)

Diterbitkan: 2019-04-07

Java 12 - Semua hal baru - Detail oleh Crunchify

Pada 19th March 2019 Java12 dirilis. Seperti yang kita ketahui Java12 adalah bagian dari rilis cepat, dirilis hanya dalam 6 bulan setelah rilis Java11.

Dalam tutorial ini, kita akan membahas semua perubahan dan fitur baru tentang Java12.

Secara pribadi saya beralih ke Java12 untuk semua pengembangan saya tetapi untuk siklus produksi itu terlalu dini. Simpan tutorial ini di bookmark saat Anda ingin beralih ke Java12 untuk semua proyek produksi Anda.

Apa yang baru di Java12? Fitur baru di Java12:

Ada beberapa fitur terkait alur kerja internal dan pengguna di Java12 yang berubah. Mari kita lihat apa saja yang ada di dalam Java 12.

Ubah-1) Pembongkaran Kelas Serentak

Pengumpul Sampah Normal biasanya membongkar variabel yang tidak digunakan selama siklus GC dan kami biasanya melihat beberapa penghentian/jeda dalam proses, atau peningkatan CPU selama waktu itu. Biasanya kita bahkan tidak menyadarinya.

Dengan ZGC (Z Garbage Collector) – Java12 juga mendukung pembongkaran Kelas secara bersamaan. Karena ini terjadi selama siklus GC normal, tidak ada jeda dan tidak ada lagi penggunaan memori tambahan juga.

Secara default, ZGC diaktifkan di Java12. Tidak perlu tindakan lagi

Bagaimana cara menonaktifkan ZGC?

  • Mulai saja aplikasi Anda dengan argumen baris perintah JVM -XX:-ClassUnloading

Ubah-2) Dapatkan detail lebih lanjut tentang JVM Crash

Ketika ada kesalahan OOM (Out Of Memory) atau JVM crash, biasanya Java membuat file dump dengan semua detailnya.

Dengan parameter JVM ini, file Dump akan dibuat di bawah folder /tmp/crunchify/ pada kesalahan OOM.

Ada satu opsi lagi yang ditambahkan di Java12:

File log baru akan dibuat bernama hs_err<pid>.log dengan semua detail tentang crash JVM. Ini sangat membantu untuk lingkungan produksi Anda jika Anda sering melihat crash dan ingin men-debug lebih banyak.

Secara default dinonaktifkan tetapi Anda dapat mengaktifkan laporan kerusakan ekstensif dengan menambahkan parameter baris perintah JVM di atas.

Ubah-3) Pemformatan Angka Ringkas

java.text menambahkan dukungan untuk format Number yang ringkas. 100o dapat disebut sebagai 1K dan 100000 dapat disebut sebagai 100K .

Hasil:

Ubah-4) Peningkatan Keamanan Java

security-libs/java.security perubahan:

  • larang dan izinkan Opsi untuk java.security.manager
    • jika disallow maka System. setSecurityManager tidak dapat digunakan untuk mengatur manajer keamanan.
  • Opsi -groupname Ditambahkan ke keytool Key Pair Generation
    • pengguna dapat menentukan grup bernama saat membuat pasangan kunci.
  • Menyesuaikan Generasi PKCS12 keystore
    • termasuk algoritma dan parameter untuk
      • perlindungan kunci
      • perlindungan sertifikat
      • MacData
  • Acara Keamanan JFR Baru
    • Apa itu JFR (Java Flight Recorder)
    • 4 acara JFR baru ditambahkan
      • jdk.X509Sertifikat
      • jdk.X509Validasi
      • jdk.TLSHjabat tangan
      • jdk.SecurityPropertyModification

Ubah-5) JEP 325: Beralih Ekspresi

JEP 325 Tukar Ekspresi Tutorial oleh Crunchify

Switch statement Disempurnakan sekarang didukung di Java12.

  • case L -> syntax . Di sini tidak ada istirahat yang diperlukan.
  • Penggunaan Ekspresi Beralih
    • ini adalah pernyataan sakelar yang disederhanakan
    • jika label cocok, maka hanya ekspresi di sebelah kanan label panah yang dieksekusi.
    • Tidak diperlukan pernyataan break.

CrunchifyJava12SwitchExample.java

Hasil IntelliJ IDEA:

Hasil Tutorial Pernyataan Beralih Java 12 - Crunchify

Ubah-6) JVM Constants API

java.lang.invoke.constant : Seperti yang Anda ketahui, kelas Java memiliki kumpulan konstanta yang menyimpan semua operan saat runtime.

Java12 menambahkan API untuk memanggil konstanta saat runtime.

Fitur yang dihapus dari Java12:

Fitur yang dihapus dari Java12 - Kiat Crunchify

Fitur usang dari Java12:

Fitur usang dari Java12 - Kiat Crunchify

Beri tahu saya jika Anda memiliki tutorial praktis tentang Java12 yang ingin Anda sertakan di sini.