Diferenças Entre Versões do Java: Uma Visão Geral
- #Programação para Internet
- #Spring
- #Java
Neste artigo, exploraremos as principais atualizações do Java e as depreciações associadas a cada versão, ajudando você a entender as mudanças e como se adaptar a elas.
Java 8 (Março de 2014)
Novidades:
- Lambdas: Introdução de expressões lambda que facilitam a programação funcional.
- Streams API: Nova API para processamento de coleções com suporte a operações de stream.
- Date and Time API: Uma nova API para manipulação de datas e horas.
- Default Methods: Permite a definição de métodos padrão em interfaces.
- Optional: Tipo para evitar o uso de
null
.
Depreciações:
- APIs antigas de data/hora foram marcadas como obsoletas, em favor da nova API.
Java 9 (Setembro de 2017)
Novidades:
- Modularização (Projeto Jigsaw): Introdução de um sistema de módulos para melhor organização do código.
- JShell: REPL (Read-Eval-Print Loop) para execução interativa de código Java.
- API de Processos: Nova API para gerenciar processos do sistema.
- Collection Factory Methods: Métodos para criar coleções imutáveis.
Depreciações:
- Algumas APIs e métodos antigos foram removidos ou modificados devido à modularização.
Java 10 (Março de 2018)
Novidades:
- Var: Inferência de tipos locais com a palavra-chave
var
. - Garbage Collector Improvements: Melhorias no Garbage Collector (G1).
Depreciações:
- APIs antigas foram removidas ou modificadas.
Java 11 (Setembro de 2018)
Novidades:
- HTTP Client API: Nova API para realizar solicitações HTTP.
- String Methods: Novos métodos para a classe
String
, comoisBlank()
estrip()
. - Local-Variable Syntax for Lambda Parameters: Suporte para
var
em parâmetros de lambda.
Depreciações:
- Módulos Java EE e CORBA foram removidos do JDK.
Java 12 (Março de 2019)
Novidades:
- Switch Expressions: Expressões
switch
simplificadas (feature em preview). - Dynamic CDS Archives: Melhorias no Class Data Sharing.
Depreciações:
- Algumas funcionalidades antigas foram descontinuadas.
Java 13 (Setembro de 2019)
Novidades:
- Text Blocks (Preview Feature): Suporte para blocos de texto multi-linha.
- Dynamic CDS Archives: Melhorias na funcionalidade de Class Data Sharing.
Depreciações:
- Continuaram a remoção e desuso de funcionalidades antigas.
Java 14 (Março de 2020)
Novidades:
- Record Types (Preview Feature): Tipos de registro para representar dados imutáveis.
- Pattern Matching for instanceof (Preview Feature): Simplificação do operador
instanceof
.
Depreciações:
- Algumas APIs antigas foram removidas ou alteradas.
Java 15 (Setembro de 2020)
Novidades:
- Sealed Classes (Preview Feature): Classes seladas para restrição de herança.
- Hidden Classes: Classes ocultas para uso dinâmico.
Depreciações:
- Continuação da remoção de APIs obsoletas.
Java 16 (Março de 2021)
Novidades:
- JEP 394: Pattern Matching for instanceof: Inclusão do Pattern Matching como padrão.
- JEP 395: Records: Tipos de registro como funcionalidade padrão.
Depreciações:
- Continuação da remoção de APIs obsoletas e desuso de funcionalidades antigas.
Java 17 (Setembro de 2021)
Novidades:
- JEP 391: macOS/AArch64 Port: Suporte para a arquitetura AArch64 no macOS.
- JEP 409: Sealed Classes: Sealed Classes se tornam uma funcionalidade padrão.
Depreciações:
- Remoção de módulos e APIs obsoletos.
Java 18 (Março de 2022)
Novidades:
- JEP 400: Unix-Domain Socket Support: Suporte para sockets Unix.
Depreciações:
- Novas depreciações geralmente não são marcadas explicitamente, mas mudanças contínuas na API podem afetar compatibilidade.
Java 19 (Setembro de 2022)
Novidades:
- JEP 427: Pattern Matching for Switch: Aprimoramento das expressões
switch
com Pattern Matching.
Depreciações:
- Alterações em APIs e funcionalidades antigas.
Java 20 (Março de 2023)
Novidades:
- JEP 429: Record Patterns: Adição de padrões para registros.
Depreciações:
- Continuação da remoção e atualização de APIs e funcionalidades.
Java 21 (Setembro de 2023)
Novidades:
- JEP 432: Scoped Values: Suporte para valores escopados.
- JEP 437: Foreign Function & Memory API: API para interagir com código nativo e manipulação de memória fora do heap.
Depreciações:
- Mais APIs antigas foram removidas ou marcadas como obsoletas.