terça-feira, 25 de setembro de 2018

☕ Java 11 (LTS): maturidade, limpeza e o início do Java moderno

Lançado em 25 de setembro de 2018, o Java 11 foi muito mais do que apenas mais uma versão:

ele marcou o início prático do Java moderno em produção.

Além de ser uma versão LTS (Long Term Support), o Java 11 consolidou mudanças iniciadas no Java 9 e Java 10, trazendo novas APIs, limpeza da plataforma e maior foco em desempenho.


📌 O contexto do Java 11

Após o Java 8:

  • O Java mudou seu modelo de lançamentos

  • Versões passaram a sair a cada 6 meses

  • Muitas empresas aguardavam um novo LTS confiável

O Java 11 veio exatamente para isso:
👉 ser o sucessor natural do Java 8.


🚀 Principais novidades do Java 11

🌐 Novo HTTP Client (API padrão)

Uma das novidades mais aguardadas.

O Java 11 trouxe uma API moderna de cliente HTTP, substituindo soluções antigas e limitadas.

Características:

  • Suporte a HTTP/1.1 e HTTP/2

  • API simples e fluida

  • Suporte a chamadas síncronas e assíncronas

  • Integração com CompletableFuture

Finalmente o Java passou a ter um cliente HTTP à altura das necessidades modernas 🌍


🧠 var em parâmetros de lambda

O Java 11 expandiu o uso do var:

Agora é possível usar var em parâmetros de expressões lambda, permitindo:

  • Código mais consistente

  • Uso de anotações em parâmetros

  • Melhor legibilidade em alguns cenários

Mais flexibilidade sem perder tipagem forte.


✂️ Limpeza da plataforma (Java EE removido)

Aqui está uma mudança histórica.

No Java 11:

  • Módulos do Java EE foram removidos da JDK

  • APIs como JAXB, JAX-WS e outras saíram do core

  • Essas tecnologias passaram a ser dependências externas

Isso reforçou a separação entre:

  • Plataforma Java (JDK)

  • APIs corporativas (agora Jakarta EE)

Uma mudança necessária para a evolução da plataforma 🧱


🧵 Novos métodos úteis em String

O Java 11 trouxe métodos muito usados no dia a dia:

  • isBlank()

  • lines()

  • strip(), stripLeading(), stripTrailing()

  • repeat(n)

Pequenas adições que melhoraram bastante a produtividade ✨


📂 Novos métodos para arquivos

A API de arquivos também evoluiu:

  • Files.readString()

  • Files.writeString()

Menos código, mais clareza ao lidar com arquivos simples.


🎥 Java Flight Recorder open source

O Java Flight Recorder (JFR) passou a ser:

  • Open source

  • Disponível sem custo

  • Integrado ao OpenJDK

Isso democratizou o acesso a ferramentas avançadas de monitoramento e diagnóstico 🔍


⚙️ Melhorias em Garbage Collection

O Java 11 trouxe avanços importantes:

  • Melhorias no G1 GC

  • Introdução do ZGC como recurso experimental

  • Menor tempo de pausa

  • Melhor escalabilidade

Essas mudanças prepararam o Java para aplicações de alta carga.


📌 Java 11 é LTS

Isso fez toda a diferença.

O Java 11:

  • Recebeu adoção massiva

  • Tornou-se base para muitos sistemas corporativos

  • Substituiu o Java 8 em grande parte do mercado

Até hoje, ele ainda é amplamente utilizado.


🧠 O impacto do Java 11

O Java 11:

  • Consolidou o novo ciclo de releases

  • Tornou o Java mais enxuto

  • Reforçou a separação entre JDK e APIs corporativas

  • Preparou o terreno para o Java 17 e além

Foi um verdadeiro ponto de estabilidade.


📝 Conclusão

O Java 11 não foi chamativo como o Java 8, nem estrutural como o Java 9 —
mas foi fundamental.

Ele trouxe:

  • Estabilidade 🧱

  • Modernização ✨

  • Limpeza 🔄

  • Confiança para produção 🚀

Por isso, é considerado o primeiro Java moderno de verdade.

terça-feira, 20 de março de 2018

☕ Java 10: pequenos recursos, grandes impactos

Lançado em 20 de março de 2018, o Java 10 foi a primeira versão dentro do novo modelo de lançamentos semestrais inaugurado após o Java 9.

Ele não trouxe mudanças estruturais profundas como o Java 9, mas apresentou melhorias pontuais que impactaram diretamente a produtividade do desenvolvedor.


📌 O contexto do Java 10

O Java 10 marcou:

  • O início do ritmo acelerado de releases

  • A consolidação do Java como plataforma em evolução contínua

  • Uma mudança de mentalidade: menos grandes saltos, mais evolução constante

Foi também uma versão de transição para quem vinha do Java 8.


🚀 Principais novidades do Java 10

🧠 Inferência de tipos com var

A novidade mais famosa do Java 10.

O var permite que o compilador infira o tipo da variável local automaticamente.

Benefícios:

  • Código mais limpo

  • Menos repetição de tipos

  • Melhor legibilidade em alguns cenários

Importante:

  • var é apenas para variáveis locais

  • O tipo continua existindo em tempo de compilação

Ou seja, o Java continua sendo fortemente tipado.


📦 Aplicações mais enxutas com o JPMS

O Java 10 continuou o trabalho iniciado no Java 9:

  • Melhor uso dos módulos

  • Refinamento do sistema modular

  • Melhor integração com ferramentas

O ecossistema começou a se adaptar melhor ao JPMS.


⚙️ Melhorias de desempenho na JVM

Como toda versão intermediária, o Java 10 trouxe:

  • Otimizações internas

  • Melhor gerenciamento de memória

  • Ajustes finos de performance

Essas melhorias são invisíveis no código, mas importantes em produção ⚡


🧩 Coletores de lixo aprimorados

O Java 10 trouxe melhorias em:

  • G1 Garbage Collector

  • Previsibilidade de pausas

  • Comportamento sob carga

Esses ajustes ajudaram aplicações a se tornarem mais estáveis.


🛠️ Limpeza e remoção de APIs antigas

O Java 10 continuou o processo de:

  • Remoção de APIs obsoletas

  • Limpeza da plataforma

  • Redução de dependências legadas

Esse processo ajuda a manter o Java saudável a longo prazo.


🧠 O impacto do Java 10

O Java 10:

  • Não foi uma versão “chamativa”

  • Teve adoção mais restrita

  • Mostrou que o novo modelo de releases funcionava

Ele ajudou a normalizar a ideia de atualizações frequentes.


📌 Java 10 não é LTS

Um ponto importante:

  • Java 10 não é LTS

  • Teve suporte de curto prazo

Por isso, muitos projetos pularam o Java 10, indo direto para o Java 11.


📝 Conclusão

O Java 10 não tentou reinventar a linguagem — e isso foi proposital.

Com recursos como o var, ele:

  • Melhorou a experiência do desenvolvedor 🧠

  • Tornou o código mais limpo ✨

  • Preparou o caminho para versões futuras 🚀

Pequenas mudanças, grande impacto.