Massimo Caliman
by Massimo Caliman
2 min read

Categories

  • Java

Tags

  • it
  • java

JDK 1.0 (1996)

  • Caratteristica principale: Rilascio iniziale.
  • Novità: Introduzione delle basi del linguaggio, della JVM, del multithreading e delle primitive di I/O.

JDK 1.1 (1997)

  • Caratteristica principale: Introduzione delle classi interne.
  • Novità: Classi interne (inner classes), JavaBeans, la riflessione e l’API JDBC.

J2SE 1.2 (1998)

  • Caratteristica principale: Il Java Collections Framework.
  • Novità: Strutture dati standard (liste, mappe, insiemi) e compilazione JIT per migliorare le prestazioni della macchina virtuale.

J2SE 1.3 (2000)

  • Caratteristica principale: Interfaccia JNDI.
  • Novità: Supporto per RMI e introduzione dell’API JavaSound.

J2SE 1.4 (2002)

  • Caratteristica principale: Logging API.
  • Novità: Introduzione di assert, espressioni regolari e pacchetto java.nio per l’I/O ad alte prestazioni.

Java 5 / JDK 1.5 (2004)

  • Caratteristica principale: Riconfigurazione radicale del linguaggio.
  • Novità: Generics, annotazioni, enumerazioni, ciclo for-each, autoboxing e varargs.

Java 6 (2006)

  • Caratteristica principale: Ottimizzazione delle prestazioni.
  • Novità: Miglioramenti nel compilatore JIT, supporto per script engine e aggiornamento dei Web Services.

Java 7 (2011)

  • Caratteristica principale: Progetto Coin.
  • Novità: Gestione automatica delle risorse nel blocco try-with-resources, stringhe negli switch, e supporto per la concorrenza con il framework Fork/Join.

Java 8 (2014)

  • Caratteristica principale: Programmazione funzionale.
  • Novità: Espressioni Lambda, API Stream, metodi di default nelle interfacce e nuova API Date/Time.

Java 9 (2017)

  • Caratteristica principale: Sistema di moduli (Project Jigsaw).
  • Novità: Modularizzazione del JDK e della piattaforma, insieme alla JShell (REPL).

Java 10 (2018)

  • Caratteristica principale: Inferenza dei tipi.
  • Novità: Parola chiave var per variabili locali.

Java 11 (2018)

  • Caratteristica principale: Prima versione LTS dopo il cambio di ciclo di rilascio semestrale.
  • Novità: Metodo var anche nelle espressioni lambda e rimozione di moduli deprecati (come CORBA e Java EE).

Java 12 (2019)

  • Caratteristica principale: Espressioni Switch (anteprima).
  • Novità: Introduzione del Garbage Collector Shenandoah.

Java 13 (2019)

  • Caratteristica principale: Blocchi di testo (anteprima).
  • Novità: Raffinamento dell’espressione switch.

Java 14 (2020)

  • Caratteristica principale: Record e Pattern Matching (anteprime).
  • Novità: Gestione avanzata dei NullPointerExceptions e rimozione del Garbage Collector CMS.

Java 15 (2020)

  • Caratteristica principale: Classi sigillate (anteprima).
  • Novità: Rimozione delle estensioni Nashorn JavaScript.

Java 16 (2021)

  • Caratteristica principale: Record e Pattern Matching per instanceof resi definitivi.
  • Novità: Pacchettizzazione con jpackage.

Java 17 (2021)

  • Caratteristica principale: Nuova versione LTS.
  • Novità: Pattern Matching per switch (anteprima), classi sigillate definitive e incapsulamento rigoroso delle API interne.

Java 18 (2022)

  • Caratteristica principale: UTF-8 come set di caratteri predefinito.
  • Novità: Server HTTP semplice integrato.

Java 19 (2022)

  • Caratteristica principale: Progetto Loom (anteprime).
  • Novità: Thread virtuali e pattern matching per record.

Java 20 (2023)

  • Caratteristica principale: Ulteriori affinamenti su pattern matching e thread virtuali.
  • Novità: Vector API (quinta incubazione).

Java 21 (2023)

  • Caratteristica principale: Nuova release LTS.
  • Novità: Thread virtuali definitivi, pattern matching per switch definitivo e sequenze di collezione.

Java 22 (2024)

  • Caratteristica principale: Gestione della memoria e programmazione avanzata.
  • Novità: Foreign Function & Memory API (per interagire con codice e memoria fuori dalla JVM in modo sicuro), espressioni e istruzioni prima di this(...) (anteprima), e Stream Gatherers (anteprima per operazioni complesse sugli stream).

Java 23 (2024)

  • Caratteristica principale: Semplificazione della scrittura del codice.
  • Novità: Primitive nei pattern matching, instanceof e switch (terza anteprima), e classi di dichiarazione implicita e metodi principali di istanza (anteprima per rendere il codice iniziale molto più conciso).

Java 24 (2025)

  • Caratteristica principale: Modernizzazione del codice e miglioramento delle prestazioni.
  • Novità: Vector API (ottava incubazione) e consolidamento delle funzionalità introdotte nelle release precedenti, insieme a miglioramenti nelle prestazioni del Garbage Collector G1.

Java 25 (2025)

  • Caratteristica principale: Nuova versione LTS (Long-Term Support).
  • Novità: Stabilizzazione definitiva di numerose funzionalità sperimentali, miglioramenti di produttività per i thread virtuali e semplificazione della gestione dei moduli.