JAVA

Introduzione

Introduzione al linguaggio Java e al principio di portabilità multipiattaforma. Analisi architetturale del flusso di esecuzione e differenze rispetto al C++: compilazione in bytecode e ruolo dei componenti JDK, JRE e JVM.

Durata

60 minuti

Software

Compilatore online Java

Linguaggio

JAVA

Fondamenti Di Java | Introduzione

Java è un linguaggio di programmazione ad alto livello, orientato agli oggetti e progettato per sviluppare applicazioni portabili su sistemi operativi diversi. Creato nel 1995 da Sun Microsystems, oggi mantenuto da Oracle, è utilizzato nello sviluppo di applicazioni desktop, servizi web, software enterprise e numerosi sistemi distribuiti.

Una delle sue caratteristiche più importanti è il principio "Write Once, Run Anywhere" (WORA): un programma Java viene compilato una sola volta e può essere eseguito su qualsiasi piattaforma che disponga di una Java Virtual Machine (JVM).

Che cos'è Java?

Tipo: linguaggio di programmazione | Paradigma: orientato agli oggetti | Caratteristica: multipiattaforma

Java è un linguaggio di programmazione sviluppato nel 1995 da Sun Microsystems, oggi mantenuto da Oracle. È utilizzato per realizzare applicazioni desktop, software aziendali, servizi web e sistemi distribuiti.

Idea chiave: Java non produce direttamente un programma eseguibile, ma un file contenente bytecode.

Java è uno dei linguaggi più diffusi nello sviluppo di applicazioni professionali grazie alla sua affidabilità e portabilità.

Ambito Esempi
Applicazioni desktop Gestionali, utility, editor
Applicazioni web Backend di siti e servizi
Software aziendali ERP, CRM, sistemi bancari
Sistemi distribuiti Server e servizi di rete

Il ciclo di vita di un programma Java

Sorgente | Compilazione | Esecuzione

Per comprendere perché Java è multipiattaforma, è necessario seguire il percorso che compie un programma dalla scrittura del codice fino alla sua esecuzione.

Quando si sviluppa un programma Java si attraversano tre fasi fondamentali:

  1. Scrittura del codice sorgente.
  2. Compilazione del codice in bytecode.
  3. Esecuzione del bytecode tramite la Java Virtual Machine.
Fase Descrizione
Codice sorgente Il programmatore scrive il file .java.
Compilazione Il compilatore javac genera il file .class.
Bytecode Il file .class contiene istruzioni indipendenti dal sistema operativo.
JVM La Java Virtual Machine interpreta il bytecode ed esegue il programma.

Idea chiave Il compilatore Java non genera direttamente un programma eseguibile. Produce invece un file .class contenente il bytecode, che verrà eseguito dalla Java Virtual Machine.
Il bytecode è un linguaggio intermedio prodotto dal compilatore Java. Non può essere eseguito direttamente dal processore del computer, ma viene interpretato dalla Java Virtual Machine.
Da ricordare
  • In C e C++ il compilatore genera un programma eseguibile.
  • In Java il compilatore genera il bytecode.
  • La JVM interpreta il bytecode.
  • Lo stesso file .class può essere eseguito su sistemi operativi differenti.

JDK, JRE e JVM

Sviluppo | Esecuzione | Macchina virtuale

Per sviluppare ed eseguire un programma Java intervengono tre componenti fondamentali: JDK, JRE e JVM. Sebbene vengano spesso citati insieme, svolgono compiti differenti.

Schema JDK JRE JVM - Java - Mappa

Lo schema mostra come questi tre elementi siano collegati tra loro:

  • JDK (Java Development Kit) è il pacchetto utilizzato dagli sviluppatori. Contiene tutti gli strumenti necessari per creare programmi Java, compreso il compilatore javac.
  • JRE (Java Runtime Environment) è l'ambiente necessario per eseguire un'applicazione Java. Include la JVM e le librerie standard del linguaggio.
  • JVM (Java Virtual Machine) è il componente che interpreta il bytecode e lo esegue sul sistema operativo.
Componente Funzione Utilizzato da
JDK Scrivere e compilare programmi Java. Programmatore
JRE Eseguire applicazioni Java. Utente
JVM Interpretare il bytecode ed eseguire il programma. JRE
Da ricordare
  • Il JDK serve per sviluppare applicazioni Java.
  • Il compilatore javac trasforma il codice sorgente (.java) in bytecode (.class).
  • La JRE contiene tutto ciò che serve per eseguire un programma Java.
  • La JVM interpreta il bytecode e lo rende eseguibile sul sistema operativo.

La Java Virtual Machine (JVM) interpreta il bytecode ed esegue il programma.
A questo livello avviene la vera magia di Java, basata su una distinzione importantissima:

  • Il bytecode è identico e uguale per tutti: non importa se lo hai generato su un Mac, su Windows o su Linux. Il file compilato contiene un linguaggio intermedio che non cambia mai, indipendentemente dal computer su cui verrà eseguito.
  • La JVM cambia a seconda della macchina: poiché Windows, macOS e Linux gestiscono l'hardware e la memoria in modi diversi, ogni sistema operativo ha bisogno della sua specifica versione di JVM (esisterà una JVM per Windows, una per Linux e una per macOS) per tradurre quel bytecode.

Verificare l'installazione di Java

Da terminale (prompt dei comandi) è possibile verificare se Java e il kit di sviluppo sono installati utilizzando i seguenti comandi:

# Versione della Java Virtual Machine (JRE/JVM)
java -version

# Versione del compilatore Java (JDK)
javac -version

Se entrambi i comandi restituiscono un numero di versione, significa che il JDK è installato correttamente e il sistema è pronto per sviluppare ed eseguire programmi Java.





In sintesi

Argomenti: concetti principali, riepilogo, competenze

  1. Java è un linguaggio di programmazione interamente orientato agli oggetti.
  2. Il codice sorgente (.java) non produce un eseguibile nativo, ma viene compilato in bytecode (.class).
  3. Il bytecode è un linguaggio intermedio, universale e indipendente dalla piattaforma hardware sottostante.
  4. La Java Virtual Machine (JVM) interpreta ed esegue il bytecode adattandolo allo specifico sistema operativo ospitante.
  5. Il pacchetto JDK fornisce gli strumenti di sviluppo (come il compilatore javac), mentre la JRE fornisce l'ambiente di runtime per l'utente finale.

Cosa hai imparato
  1. A differenziare l'architettura di esecuzione ibrida di Java rispetto a quella puramente compilata del C/C++.
  2. Il ruolo strutturale e la scomposizione dei componenti logici del JDK, della JRE e della JVM.
  3. Il significato operativo del bytecode e la sua centralità nel paradigma multipiattaforma Write Once, Run Anywhere.
  4. I comandi fondamentali della riga di comando per verificare la corretta installazione dell'ambiente di sviluppo e runtime Java.


Java, JVM, bytecode, JDK, JRE, programmazione ad oggetti, C++, compilatore online,