Menu

Cos'è Java? Il linguaggio, la JVM e dove viene eseguito

Cos'è davvero Java, come la JVM permette a un programma compilato di funzionare ovunque e che tipo di software si costruisce con Java.

Questa pagina include editor eseguibili: modifica, esegui e vedi subito l'output.

Java in una frase

Java è un linguaggio di programmazione orientato agli oggetti e a tipizzazione statica che viene compilato in bytecode ed eseguito sulla Java Virtual Machine (JVM). Questa sola scelta di progettazione, cioè compilare in un formato intermedio neutro e poi eseguirlo su una macchina virtuale, è il motivo per cui lo stesso programma Java compilato funziona senza modifiche su Windows, macOS, Linux e oltre.

Ecco l'immancabile primo programma. Puoi eseguirlo proprio qui:

C'è più cerimonia che in un linguaggio di scripting, ed è voluto: Java preferisce una struttura esplicita. Analizzeremo ogni pezzo nelle prossime pagine.

Perché la JVM è importante

La maggior parte dei linguaggi compilati trasforma il codice sorgente direttamente in codice macchina per un processore e un sistema operativo specifici. Un programma compilato per Windows non funziona su un Mac. Java fa una deviazione:

  1. javac compila il sorgente .java in file .class che contengono bytecode: istruzioni per una macchina immaginaria, non per una CPU reale.
  2. La JVM della tua piattaforma legge quel bytecode e lo esegue, traducendolo man mano in istruzioni macchina native.

Poiché ogni piattaforma ha la propria JVM ma tutte capiscono lo stesso bytecode, compili una volta ed esegui il risultato ovunque esista una JVM. È il famoso slogan: write once, run anywhere (scrivi una volta, esegui ovunque).

La JVM non si limita a interpretare alla cieca. Un compilatore just-in-time (JIT) osserva quale codice viene eseguito più spesso e compila quelle parti in codice nativo ottimizzato, così i programmi Java che restano in esecuzione a lungo si avvicinano alla velocità dei linguaggi completamente compilati.

Tipizzato staticamente e orientato agli oggetti

Due proprietà definiscono l'aspetto e lo stile del codice Java.

Tipizzato staticamente significa che ogni variabile ha un tipo noto in fase di compilazione, e il compilatore controlla i tipi prima ancora che il programma venga eseguito:

count resta un int per sempre; assegnargli "hello" non compilerebbe. Così un'intera categoria di errori viene intercettata presto, al prezzo di scrivere un po' di più all'inizio.

Orientato agli oggetti significa che Java organizza il codice in classi: modelli che raggruppano i dati e i metodi che lavorano su di essi. Perfino il punto di ingresso qui sopra vive dentro una class Main. Quasi tutto ciò che scrivi in Java vive dentro una classe.

A cosa serve Java

Java è uno dei linguaggi più diffusi al mondo. Lo trovi in:

  • Backend e sistemi aziendali: banche, assicurazioni, grandi servizi web e tutto ciò che deve funzionare in modo affidabile per anni.
  • Android: il linguaggio originale della piattaforma, ancora centrale nel runtime Android anche accanto a Kotlin.
  • Big data: Hadoop, Spark, Kafka e gran parte dell'ecosistema di data engineering girano sulla JVM.
  • Desktop ed embedded: dagli IDE (IntelliJ, Eclipse) ai terminali dei punti vendita e alle smart card.

È noto per stabilità, compatibilità con le versioni precedenti e una vasta libreria standard, più che per essere il linguaggio più conciso. Il codice scritto per Java anni fa in genere funziona ancora oggi.

Java non è JavaScript

Vale la pena dirlo chiaramente, perché i nomi creano una confusione infinita: Java e JavaScript sono linguaggi diversi e senza legami. Condividono quattro lettere per motivi storici di marketing e nient'altro di importante. Java è compilato, a tipizzazione statica e gira sulla JVM; JavaScript è a tipizzazione dinamica e gira nei browser e in Node.js. Imparare uno non ti insegna l'altro.

Prossima pagina: installare Java

Per scrivere ed eseguire Java sul tuo computer ti serve un JDK (Java Development Kit): il compilatore, più la JVM, più la libreria standard. La prossima pagina ti guida nell'installazione e nella verifica che funzioni.

Domande frequenti

A cosa serve Java?

Java fa funzionare grandi sistemi lato server e aziendali, le app Android (tramite l'Android SDK e il runtime condiviso con Kotlin), strumenti per big data come Hadoop e Spark e innumerevoli applicazioni desktop ed embedded. I suoi punti di forza sono la stabilità, un'enorme libreria standard e la JVM, che esegue lo stesso programma compilato su qualsiasi sistema operativo.

Java è compilato o interpretato?

Entrambe le cose. Il compilatore Java (javac) trasforma il sorgente in bytecode indipendente dalla piattaforma, poi la JVM esegue quel bytecode: all'inizio lo interpreta, poi compila le parti più usate in codice macchina nativo con un compilatore just-in-time (JIT). Quindi Java viene compilato in bytecode, che poi viene interpretato e compilato JIT durante l'esecuzione.

Java è la stessa cosa di JavaScript?

No: sono linguaggi senza alcun legame che condividono il nome per motivi storici di marketing. Java è un linguaggio compilato a tipizzazione statica che gira sulla JVM; JavaScript è un linguaggio a tipizzazione dinamica che gira nei browser e in Node.js. Conoscerne uno non significa conoscere l'altro.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA