W3docs

Introduzione alla Programmazione Java

Scopri cos'è Java, come JVM e JDK si integrano e il ruolo di Java nello sviluppo software moderno.

Java è un linguaggio di programmazione general-purpose, a tipizzazione statica e orientato agli oggetti, progettato per la portabilità. I programmi vengono compilati in bytecode che viene eseguito sulla Java Virtual Machine (JVM), quindi lo stesso file .class può essere eseguito su Windows, macOS, Linux o qualsiasi altro sistema che abbia installata una JVM compatibile. Quella portabilità — racchiusa nel celebre slogan originale "write once, run anywhere" — è ancora oggi la caratteristica distintiva del linguaggio.

Questo capitolo introduce il linguaggio, la piattaforma e le parti dell'ecosistema Java che incontrerai nel resto del libro.

Cos'è Java

Java è stato rilasciato da Sun Microsystems nel 1995 ed è ora gestito da Oracle. Trae la sua sintassi da C e C++, ma sostituisce la gestione manuale della memoria con un garbage collector automatico, e omette funzionalità (come l'aritmetica dei puntatori e l'ereditarietà multipla delle classi) che causano frequentemente bug nei linguaggi di livello inferiore. Il risultato è un linguaggio veloce da imparare, difficile da mandare in crash e adatto ad applicazioni longeve mantenute da grandi team.

Caratteristiche principali che noterai lavorando con questo libro:

  • Tipizzazione statica. Ogni variabile ha un tipo noto al momento della compilazione, quindi il compilatore rileva molti errori prima ancora che il programma venga eseguito.
  • Orientato agli oggetti. Il codice è organizzato attorno a classi che raggruppano dati e i metodi che operano su di essi.
  • Portabile. Il sorgente viene compilato in bytecode indipendente dalla piattaforma, eseguito da qualsiasi JVM.
  • Gestione della memoria. Il garbage collector recupera gli oggetti a cui non si fa più riferimento.
  • Multi-thread. Thread, lock e moderne utilità di concorrenza fanno parte della libreria standard.
  • Compatibile con le versioni precedenti. I programmi scritti per versioni precedenti di Java funzionano quasi sempre senza modifiche sulle versioni più recenti.

Dove viene usato Java

Poiché la JVM gira su quasi ogni server e piattaforma desktop, Java si è diffuso in praticamente ogni settore dello sviluppo software:

  • Applicazioni lato server — la maggior parte dei backend di grandi aziende e-commerce, bancarie ed enterprise usa Java (spesso con Spring, Jakarta EE o Quarkus).
  • App Android — la libreria standard di Android è in gran parte un'API Java, anche quando le app sono scritte in Kotlin.
  • Big data e streaming — Hadoop, Spark, Kafka, Flink ed Elasticsearch sono scritti sulla JVM.
  • Tooling e sistemi di build — Maven, Gradle, Jenkins e molti strumenti CI girano su Java.
  • Embedded e IoT — smart card, terminali point-of-sale e controllori industriali.

JDK, JRE e JVM

I tre acronimi confondono i principianti più di qualsiasi altra cosa in Java. Ecco la spiegazione:

  • JVM (Java Virtual Machine) — il runtime che carica il bytecode e lo esegue. Ogni sistema operativo include la propria JVM nativa.
  • JRE (Java Runtime Environment) — la JVM fornita insieme alle librerie di classi principali necessarie per eseguire un programma Java. È il minimo necessario per eseguire codice Java.
  • JDK (Java Development Kit) — il JRE più gli strumenti necessari per compilare e fare il debug del codice Java: javac (compilatore), jshell (REPL), javadoc (documentazione) e altri.

Per scrivere Java si installa il JDK; il JRE è incluso al suo interno, quindi non è necessario installarli separatamente. Il JDK di Oracle è solo una delle opzioni — OpenJDK è l'implementazione di riferimento gratuita e open-source, e distribuzioni come Eclipse Temurin, Amazon Corretto e Azul Zulu pacchettizzano lo stesso OpenJDK con il proprio supporto a lungo termine. Tutte funzioneranno con il codice di questo libro; scegline una e vai avanti.

Questa configurazione verrà eseguita passo dopo passo in Java Install e Java Environment Setup.

Un primo sguardo a un programma Java

Scriverai un Hello World completo in Java Hello World Program. Per ora, ecco come appare un programma Java minimale — lo stesso codice, compilato ed eseguito sul server:

java— editable, runs on the server

Alcune cose da notare senza preoccuparsi di ogni dettaglio per ora:

  • Ogni programma risiede all'interno di una classe (qui, Hello).
  • L'esecuzione parte da un metodo chiamato main con la firma public static void main(String[] args).
  • Le istruzioni terminano con il punto e virgola, e i blocchi sono racchiusi tra parentesi graffe { ... }.
  • System.out.println scrive una riga sull'output standard.

Versioni di Java e cadenza dei rilasci

Da Java 9 (2017), una nuova versione principale viene rilasciata ogni sei mesi, con una release Long-Term Support (LTS) ogni due anni. Le versioni LTS correnti che incontrerai più probabilmente al lavoro sono Java 17 e Java 21. Questo libro è scritto per Java 21 e fa riferimento alle versioni precedenti solo quando la differenza è rilevante.

Cosa copre questo libro

I capitoli che seguono ti guidano da una nuova installazione del JDK attraverso il linguaggio moderno: le basi della sintassi, il controllo del flusso, la programmazione orientata agli oggetti, il framework delle collezioni, le eccezioni, i generics, le lambda e gli stream, I/O, la concorrenza, JDBC, i moduli e le funzionalità più recenti come record, tipi sealed, pattern matching e virtual thread. La barra laterale raggruppa i capitoli in 28 parti — leggili in ordine per un percorso guidato, oppure vai direttamente a ciò di cui hai bisogno.

Esercitati

Pratica
Quale affermazione su Java è corretta?
Quale affermazione su Java è corretta?
Was this page helpful?