Totul despre Java12 – Caracteristici noi, securitate și declarație de expresie a comutatorului (exemple)

Publicat: 2019-04-07

Java 12 - Toate lucrurile noi - Detalii de Crunchify

Pe 19th March 2019 , Java12 a fost lansat. După cum știm, Java12 a făcut parte din lansarea rapidă, a fost lansat la doar 6 luni după lansarea Java11.

În acest tutorial, vom trece peste toate modificările și noile funcții despre Java12.

Personal, am trecut la Java12 pentru toată dezvoltarea mea, dar pentru ciclul de producție este prea devreme. Păstrați acest tutorial marcat atunci când doriți să treceți la Java12 pentru toate proiectele dvs. de producție.

Ce este nou în Java12? Caracteristici noi în Java12:

Există destul de multe funcții interne și legate de fluxul de lucru al utilizatorului în Java12, care s-au schimbat. Să aruncăm o privire la ce este în interiorul Java 12.

Modificare-1) Descărcare simultană a clasei

Colectorul de gunoi normal descarcă de obicei variabilele neutilizate în timpul ciclului GC și, de obicei, observăm o oarecare oprire/pauză în proces sau o creștere a CPU în acest timp. De obicei nici nu observăm asta.

Cu ZGC (Z Garbage Collector) – Java12 acceptă și descărcarea simultană a clasei. Deoarece acest lucru se întâmplă în timpul ciclului normal de GC, nu există nicio pauză și nici o utilizare suplimentară a memoriei.

În mod implicit, ZGC este activat în Java12. Nu mai este necesară nicio acțiune

Cum se dezactivează ZGC?

  • Doar porniți aplicația cu argumentul liniei de comandă JVM -XX:-ClassUnloading

Modificare-2) Obțineți mai multe detalii despre JVM Crash

Când există o eroare OOM (Out Of Memory) sau se blochează JVM, de obicei Java creează fișiere de descărcare cu toate detaliile.

Cu acești parametri JVM, fișierele Dump vor fi create în folderul /tmp/crunchify/ la eroarea OOM.

Mai există o opțiune adăugată în Java12:

Va fi creat un nou fișier jurnal numit hs_err<pid>.log cu toate detaliile despre blocarea JVM. Acest lucru este foarte util pentru mediul dvs. de producție dacă observați blocări frecvente și doriți să depanați mai multe.

În mod implicit, este dezactivat, dar puteți activa un raport extins de blocare adăugând mai sus parametrul liniei de comandă JVM.

Modificare-3) Formatarea compactă a numărului

java.text adaugă suport pentru formatul numeric compact. 100o poate fi menționat ca 1K și 100000 poate fi menționat ca 100K .

Rezultat:

Modificare-4) Îmbunătățiri de securitate Java

security-libs/java.security modificări:

  • interziceți și permiteți Opțiuni pentru java.security.manager
    • dacă nu este disallow , atunci System. setSecurityManager nu poate fi folosit pentru a seta managerul de securitate.
  • Opțiunea -groupname Adăugat la keytool Generarea perechilor de chei
    • un utilizator poate specifica un grup numit atunci când generează o pereche de chei.
  • Personalizarea generației PKCS12 keystore
    • include algoritmi și parametri pentru
      • protecția cheii
      • certificat de protectie
      • MacData
  • Noi evenimente de securitate JFR
    • Ce este JFR (Java Flight Recorder)
    • Au fost adăugate 4 evenimente JFR noi
      • jdk.X509Certificat
      • jdk.X509Validare
      • jdk.TLSHandshake
      • jdk.SecurityPropertyModification

Modificare-5) JEP 325: Schimbarea expresiilor

Tutorial pentru expresii de comutare JEP 325 de la Crunchify

Switch statement îmbunătățită este acum acceptată în Java12.

  • case L -> syntax . Aici nu este necesară nicio pauză.
  • Utilizarea expresiei Switch
    • aceasta este declarația de comutare simplificată
    • dacă o etichetă este potrivită, atunci este executată doar expresia din dreapta unei etichete săgeată.
    • Nu este nevoie de declarație de pauză.

CrunchifyJava12SwitchExample.java

IntelliJ IDEA Rezultat:

Java 12 Switch Statement Tutorial Rezultat - Crunchify

Modificare-6) JVM Constants API

java.lang.invoke.constant : După cum probabil știți, clasa Java are un pool constant care stochează toți operanzii în timpul execuției.

Java12 adaugă API pentru invocarea constantelor în timpul execuției.

Caracteristici eliminate din Java12:

S-au eliminat caracteristici din Java12 - Crunchify Tips

Caracteristici depreciate de la Java12:

Caracteristici depreciate de la Java12 - Sfaturi Crunchify

Anunțați-mă dacă aveți vreun tutorial la îndemână despre Java12 pe care ați dori să îl includeți aici.