Gabriel Silva
Gabriel Silva16/09/2024 13:04
Compartilhe

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, como isBlank() e strip().
  • 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.
Compartilhe
Comentários (0)