Tudo sobre Java12 – Novos recursos, segurança e declaração de expressão de switch (exemplos)

Publicados: 2019-04-07

Java 12 - Todas as novidades - Detalhes por Crunchify

Em 19th March 2019 o Java12 foi lançado. Como sabemos que o Java12 fazia parte do lançamento rápido, ele foi lançado apenas 6 meses após o lançamento do Java11.

Neste tutorial, veremos todas as mudanças e novos recursos sobre o Java12.

Pessoalmente, mudei para Java12 para todo o meu desenvolvimento, mas para o ciclo de produção é muito cedo. Mantenha este tutorial marcado quando quiser mudar para Java12 para todos os seus projetos de produção.

O que há de novo em Java12? Novos recursos em Java12:

Existem alguns recursos internos e relacionados ao fluxo de trabalho do usuário no Java12 que mudaram. Vamos dar uma olhada no que está dentro do Java 12.

Alteração-1) Descarga de classe simultânea

O Garbage Collector normal geralmente descarrega a variável não utilizada durante o ciclo de GC e geralmente notamos alguma interrupção/pausa no processo ou aumento da CPU durante esse período. Normalmente nem percebemos isso.

Com ZGC (Z Garbage Collector) – Java12 também suporta descarregamento de classe simultâneo. Como isso acontece durante o ciclo normal de GC, não há nenhuma pausa e também não há mais uso extra de memória.

Por padrão, o ZGC está habilitado em Java12. Nenhuma ação necessária

Como desativar o ZGC?

  • Basta iniciar seu aplicativo com o argumento de linha de comando JVM -XX:-ClassUnloading

Change-2) Obtenha mais detalhes sobre o JVM Crash

Quando há um erro OOM (out Of Memory) ou travamentos da JVM, geralmente o Java cria arquivos de despejo com todos os detalhes.

Com esses parâmetros da JVM, os arquivos de despejo serão criados na pasta /tmp/crunchify/ no erro OOM.

Há mais uma opção adicionada no Java12:

Um novo arquivo de log será criado com o nome hs_err<pid>.log com todos os detalhes sobre o travamento da JVM. Isso é muito útil para o seu ambiente de produção se você estiver vendo falhas frequentes e quiser depurar mais.

Por padrão, ele está desabilitado, mas você pode habilitar o relatório de falhas extensivo adicionando o parâmetro de linha de comando JVM acima.

Alteração-3) Formatação de Número Compacto

java.text adiciona suporte para formato de número compacto. 100o pode ser mencionado como 1K e 100000 pode ser mencionado como 100K .

Resultado:

Alteração-4) Aprimoramentos de segurança Java

alterações security-libs/java.security :

  • não permitir e permitir Opções para java.security.manager
    • se disallow , então System. setSecurityManager não pode ser usado para definir o gerenciador de segurança.
  • -groupname Opção adicionada à geração de pares de chaves keytool
    • um usuário pode especificar um grupo nomeado ao gerar um par de chaves.
  • Personalizando a geração PKCS12 keystore
    • inclui algoritmos e parâmetros para
      • proteção de chave
      • proteção de certificado
      • MacDataGenericName
  • Novos eventos de segurança JFR
    • O que é JFR (Java Flight Recorder)
    • 4 novos eventos JFR adicionados
      • jdk.X509Certificado
      • jdk.X509Validation
      • jdk.TLSHandshake
      • jdk.SecurityPropertyModification

Mudança-5) JEP 325: Trocar Expressões

Tutorial de expressões de comutação JEP 325 por Crunchify

A Switch statement agora é suportada em Java12.

  • case L -> syntax . Aqui não há nenhuma pausa necessária.
  • Uso da expressão do switch
    • esta é uma instrução switch simplificada
    • se um rótulo for correspondido, somente a expressão à direita de um rótulo de seta será executada.
    • Nenhuma instrução break é necessária.

CrunchifyJava12SwitchExample.java

Resultado do IntelliJ IDEA:

Resultado do tutorial de instrução do Java 12 Switch - Crunchify

Mudança-6) API de Constantes JVM

java.lang.invoke.constant : Como você deve saber, a classe Java possui um pool constante que armazena todos os operandos em tempo de execução.

Java12 adiciona API para invocar constantes em tempo de execução.

Recursos removidos do Java12:

Recursos removidos do Java12 - Dicas do Crunchify

Recursos obsoletos do Java12:

Recursos obsoletos do Java12 - Dicas do Crunchify

Deixe-me saber se você tem algum tutorial útil sobre Java12 que você gostaria de incluir aqui.