Java 9 - Nuove Funzionalità: Una Guida Completa per i Principianti

Ciao, aspiranti sviluppatori Java! Sono entusiasta di essere il tuo guida in questo viaggio emozionante attraverso le nuove funzionalità di Java 9. Come qualcuno che ha insegnato Java per molti anni, posso assicurarti che questa versione porta con sé miglioramenti rivoluzionari. Allora, immergiamoci e esploriamo queste caratteristiche insieme!

Java 9 - New Features

Introduzione a Java 9

Prima di addentrarci nelle nuove funzionalità, prendiamo un momento per capire di cosa si occupa Java 9. Rilasciato nel settembre 2017, Java 9 ha introdotto diversi miglioramenti che rendono la programmazione più efficiente e piacevole. È come ricevere un nuovo cassetto degli attrezzi con alcuni gadget fantastici che nemmeno sapevi di cui avevi bisogno!

Sistema Modulare

Una delle aggiunte più significative in Java 9 è il Sistema Modulare, noto anche come Progetto Jigsaw. Ora, so cosa stai pensando - "Moduli? Sembra complicato!" Ma non preoccuparti, è in realtà un modo ordinato per organizzare il tuo codice.

Cos'è un Modulo?

Pensa a un modulo come a un contenitore per il tuo codice. È come avere un armadio ben organizzato dove tutto ha il suo posto. Ogni modulo ha:

  1. Un nome
  2. Un insieme di pacchetti
  3. Una lista di cosa necessita (dipendenze)
  4. Una lista di cosa offre agli altri moduli

Guardiamo un esempio semplice:

module com.myapp {
requires java.sql;
exports com.myapp.api;
}

In questo esempio, stiamo creando un modulo chiamato com.myapp. Richiede il modulo java.sql (perché ha bisogno di alcune funzionalità di database) ed esporta il pacchetto com.myapp.api (rendendolo disponibile per altri moduli).

REPL (Read-Eval-Print Loop)

Java 9 ha introdotto JShell, uno strumento REPL. Ora, potresti chiederti, "Che cos'è diavolo un REPL?" Immagina di avere una conversazione con Java dove puoi digitare frammenti di codice e ottenere risposte immediate. Questo è REPL!

Per avviare JShell, digita semplicemente jshell nella tua riga di comando. Proviamo un esempio semplice:

jshell> System.out.println("Ciao, Java 9!")
Ciao, Java 9!

Non è fantastico? Hai eseguito del codice Java senza creare un programma completo! È perfetto per testare idee o imparare nuovi concetti.

Miglioramenti JavaDocs

La documentazione potrebbe non sembrare entusiasmante, ma fidati, una buona documentazione è il miglior amico di uno sviluppatore. Java 9 ha migliorato ulteriormente JavaDocs con l'aggiunta di funzionalità di ricerca e supporto HTML5.

Metodi di Fabbrica per le Collection

Creare collection in Java è diventato ancora più facile! Java 9 ha introdotto nuovi metodi di fabbrica per le collection. Guardiamo come creiamo una lista immutabile:

List<String> frutti = List.of("Mela", "Banana", "Ciliegia");
System.out.println(frutti);

Output:

[Mela, Banana, Ciliegia]

Non è molto più pulito rispetto al vecchio modo? Non più creazione verbosa di ArrayList e aggiunta di elementi uno per uno!

Metodi Privati nelle Interface

Java 9 ti permette di avere metodi privati nelle interfacce. Questo potrebbe sembrare un po' astratto, quindi vediamo un esempio:

public interface MyInterface {
private static void privateMethod() {
System.out.println("Questo è un metodo privato");
}

default void publicMethod() {
privateMethod();
System.out.println("Questo è un metodo pubblico");
}
}

In questo esempio, privateMethod() può essere utilizzato solo all'interno dell'interfaccia. È come avere un aiutante segreto che solo l'interfaccia conosce!

Miglioramenti dell'API Stream

L'API Stream, introdotta in Java 8, è diventata ancora migliore in Java 9. Una delle aggiunte interessanti è il metodo takeWhile(). Vediamo come funziona:

List<Integer> numeri = List.of(2, 4, 6, 8, 9, 10, 12);
List<Integer> numeriPari = numeri.stream()
.takeWhile(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(numeriPari);

Output:

[2, 4, 6, 8]

Questo codice prende i numeri dalla lista mentre sono dispari. Appena incontra un numero dispari (9), si ferma. Non è fantastico?

Miglioramenti di Try-With-Resources

Java 7 ha introdotto try-with-resources, e Java 9 lo ha migliorato ulteriormente. Ora, puoi utilizzare variabili finali o efecttivamente finali nelle dichiarazioni try-with-resources. Ecco un esempio:

BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
try (reader) {
// Usa il reader
} catch (IOException e) {
e.printStackTrace();
}

Questo rende il tuo codice più pulito e leggibile. È come sistemare la tua stanza - tutto sembra migliore!

Conclusione

Abbiamo solo sfiorato la superficie di ciò che Java 9 ha da offrire. Ci sono molte altre funzionalità come i miglioramenti dell'API Process, il nuovo schema di versionamento e il client HTTP/2. Mentre continui il tuo percorso con Java, scoprirai come queste funzionalità rendono la tua vita da programmatore più facile e piacevole.

Ricorda, il miglior modo per imparare è fare. Avvia il tuo IDE, avvia JShell e sperimenta con queste nuove funzionalità. Non aver paura di fare errori - è così che impariamo e cresciamo come sviluppatori.

Buon coding, futuri esperti Java! ??‍??‍?

Credits: Image by storyset