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()
: Retornatrue
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 quetrim()
.
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 oOptional
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: