As Novas Features do Java 11

Java 11, lançado em setembro de 2018, trouxe uma série de novas funcionalidades e melhorias significativas para a linguagem de programação Java. Este artigo aborda as principais novidades que fazem do Java 11 uma versão importante para desenvolvedores.

1. Remoção de Funcionalidades Obsoletas

Java 11 removeu várias funcionalidades que foram marcadas como obsoletas em versões anteriores. Alguns dos principais componentes removidos incluem:

  • Java EE e CORBA: Esses módulos foram removidos para simplificar a plataforma e reduzir a complexidade.
  • JavaFX: Separado do JDK e disponibilizado como um módulo independente.

2. Novos Métodos na Classe String

A classe String recebeu novos métodos úteis:

  • isBlank(): Retorna true se a string estiver vazia ou contiver apenas espaços em branco.
  • lines(): Retorna um stream de strings, quebrando a string original em linhas.
  • strip(), stripLeading(), stripTrailing(): Métodos para remover espaços em branco, funcionando de maneira mais eficiente que trim().

3. Inferência de Tipo para Variáveis Locais (var)

Embora introduzido no Java 10, a inferência de tipo (var) continua a ser uma feature importante em Java 11. Ela permite que o compilador deduza o tipo da variável com base na expressão de inicialização:

var list = new ArrayList();

4. Execução de Código Fonte

Uma das mudanças mais notáveis é a capacidade de executar arquivos .java diretamente, sem necessidade de compilação explícita. Isso simplifica o desenvolvimento e teste de scripts pequenos:

java HelloWorld.java

5. Novos Métodos na Classe Optional

A classe Optional foi aprimorada com novos métodos:

  • isEmpty(): Verifica se o Optional está vazio.
  • ifPresentOrElse(): Executa uma ação se o valor estiver presente, ou uma ação alternativa se estiver vazio.

6. Padronização de APIs HTTP

Java 11 inclui a nova API HTTP Client, que permite a criação e envio de requisições HTTP de maneira mais simples e eficiente:

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.example.com"))
        .build();
HttpResponse response = client.send(request, BodyHandlers.ofString());
System.out.println(response.body());

7. VarHandle e Acesso a Memória

Os VarHandles fornecem uma forma segura e flexível de acessar variáveis em memória, substituindo em grande parte as funcionalidades dos sun.misc.Unsafe.

8. Melhorias na Integração com Contêineres

Java 11 adiciona suporte para a detecção automática de limites de recursos quando executado em contêineres Docker, ajudando a gerenciar a alocação de memória e CPUs.

9. ZGC: Garbage Collector de Baixa Latência

O Garbage Collector ZGC foi introduzido como um garbage collector experimental, projetado para gerenciar grandes heaps com pausas mínimas, ideal para aplicações que exigem baixa latência.

10. Compatibilidade com TLS 1.3

A segurança foi aprimorada com a adição do suporte a TLS 1.3, oferecendo melhor performance e segurança nas conexões.

Conclusão

Java 11 marca uma evolução significativa para a linguagem, focando em eficiência, simplicidade e segurança. Essas novas funcionalidades e melhorias demonstram o compromisso da comunidade Java em manter a linguagem relevante e robusta para o desenvolvimento moderno de software.

Java 11 é uma atualização essencial para desenvolvedores que buscam aproveitar as mais recentes ferramentas e técnicas de programação, proporcionando um ambiente de desenvolvimento mais ágil e produtivo.

Share this content: