Inquadramento storico.
Origine di Java.


Il linguaggio Java nasce nel 1995 presso Sun Microsystems, guidato da James Gosling. Obiettivo iniziale:
- Linguaggio portabile
- Sicuro
- Orientato agli oggetti
- Adatto alla programmazione distribuita
Nel 2010 Sun viene acquisita da Oracle Corporation, che oggi gestisce lo sviluppo di Java.
Filosofia del linguaggio. Java è:
- Compilato e interpretato (compilazione in bytecode)
- Orientato agli oggetti
- Fortemente tipizzato
- Con gestione automatica della memoria (Garbage Collector)
Principio chiave:
Write Once, Run Anywhere
Grazie alla Java Virtual Machine (JVM), il bytecode può essere eseguito su qualsiasi piattaforma.
Struttura base di un programma.
public class Hello {
public static void main(String[] args) {
System.out.println(“Hello, world!”);
}
}
Elementi chiave da spiegare:
- Classe obbligatoria
- Metodo main
- Modificatori di accesso (public)
- JVM
Concetti fondamentali (nucleo dell’esposizione).
Programmazione Orientata agli Oggetti.
Java è un linguaggio puro OOP (tutto è dentro classi). Concetti da evidenziare:
- Classe e oggetto
- Incapsulamento
- Ereditarietà
- Polimorfismo
- Interfacce
- Override
Esempio:
class Studente {
private String nome;
public Studente(String nome) {
this.nome = nome;
}
public void saluta() {
System.out.println(“Ciao, sono ” + nome);
}
}
Gestione della memoria.
Aspetto distintivo rispetto a C/C++:
- Allocazione con new
- Nessun delete
- Garbage Collector automatico
- Riduzione errori di memoria (no dangling pointer)
Questo rende Java:
- Più sicuro
- Più adatto alla didattica iniziale OOP
Eccezioni (Exception Handling).
Elemento didatticamente rilevante.
try {
int x = 10 / 0;
} catch (ArithmeticException e) {
System.out.println(“Errore matematico”);
}
Permette:
- Gestione controllata degli errori
- Robustezza del software
- Programmazione difensiva
Librerie e API.
Java possiede una vasta libreria standard:
- java.util
- java.io
- java.net
- java.sql
- Collezioni (ArrayList, HashMap)
Esempio:
ArrayList<String> lista = new ArrayList<>();
Ambiti di applicazione.


Java è utilizzato in:
- Applicazioni enterprise
- Backend web (Spring)
- Applicazioni Android
- Sistemi distribuiti
- Servizi bancari e finanziari
Confronto sintetico con C e C++.
| C | C++ | Java |
| Procedurale | Multi-paradigma | OOP puro |
| Memoria manuale | Memoria semi-automatica | Garbage Collector |
| Nessuna VM | No VM | JVM |
| Basso livello | Medio livello | Alto livello |
Collegamento alla classe B016.
In un Istituto Tecnico indirizzo Informatica, si potrebbe proporre Java nel secondo biennio o quinto anno come linguaggio per consolidare la programmazione orientata agli oggetti e introdurre concetti di progettazione software.
Attività di laboratorio
- Modellazione UML → implementazione
- Progetto gestionale (registro studenti)
- Simulazione di sistema bancario
- Introduzione alle collezioni
Inclusione BES/DSA
- Diagrammi classe-oggetto
- Schemi visuali
- Semplificazione sintattica iniziale
- Apprendimento cooperativo
Competenze sviluppate
- Astrazione
- Modularità
- Robustezza del codice
- Gestione errori
- Pensiero algoritmico
Collegamenti interdisciplinari.
- Basi di dati (JDBC)
- Reti (socket Java)
- Sistemi distribuiti
- Sicurezza informatica (sandbox JVM)
Java rappresenta un linguaggio strategico nella formazione tecnica perché consente di integrare modellazione a oggetti, sicurezza e portabilità, preparando gli studenti allo sviluppo di applicazioni professionali in ambito enterprise e distribuito.
