W3docs

Programma Java Hello World

Scrivi, compila ed esegui il tuo primo programma Java — il classico Hello World — e comprendi ogni parte del file sorgente.

Ogni tutorial di linguaggio di programmazione inizia con lo stesso rituale: un piccolo programma che stampa Hello, World!. La versione Java ha più codice standard rispetto alla maggior parte dei linguaggi, ma ogni parte di quel codice è qualcosa che rivedrai ancora. Questo capitolo analizza il programma riga per riga, poi mostra come compilarlo ed eseguirlo.

Questa pagina presuppone che tu abbia già installato un JDK; in caso contrario, segui prima Come installare Java.

Puoi modificare l'esempio qui sotto e premere Run — viene effettivamente compilato ed eseguito sul server:

java— editable, runs on the server

Il programma completo

Ecco il file sorgente completo. Per convenzione, verrebbe salvato come HelloWorld.java — Java richiede che il nome del file corrisponda al nome della classe pubblica.

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Analisi riga per riga

public class HelloWorld

Ogni programma Java vive all'interno di una classe. Una classe è un modello che raggruppa dati e comportamenti — il fondamento della programmazione orientata agli oggetti. Qui la classe si chiama HelloWorld, e la parola chiave public significa che è visibile da qualsiasi altra classe.

La convenzione vuole che i nomi delle classi usino UpperCamelCase: HelloWorld, BankAccount, Order.

public static void main(String[] args)

Questo è il punto di ingresso del programma — il metodo che la JVM chiama quando avvii il codice. La firma è precisa: modifica qualsiasi sua parte e la JVM non la troverà.

  • public — la JVM deve poterlo chiamare dall'esterno della classe.
  • static — può essere chiamato senza creare prima un'istanza di HelloWorld.
  • void — non restituisce un valore.
  • main — il nome speciale che la JVM cerca.
  • String[] args — un array di argomenti della riga di comando passati quando il programma si avvia. Puoi dargli qualsiasi nome (args è convenzionale).

System.out.println("Hello, World!");

System è una classe della libreria standard; out è un campo statico su di essa che contiene il flusso di output standard; println è un metodo su quel flusso che stampa il suo argomento seguito da un a capo.

"Hello, World!" è un letterale stringa — una sequenza di caratteri racchiusa tra virgolette doppie. Le stringhe sono centrali in Java; una volta che ti sei ambientato qui, Java Strings illustra cosa puoi fare con esse.

Ogni istruzione Java termina con un punto e virgola (;). Il compilatore si lamenterà se ne dimentichi uno. Per le regole più ampie — spazi, parentesi graffe, identificatori — vedi Java Syntax.

Compilare ed eseguire dal terminale

Se hai il JDK nel tuo PATH (vedi i due capitoli precedenti), puoi compilare ed eseguire da qualsiasi terminale:

# Save the source as HelloWorld.java, then:
javac HelloWorld.java       # compiles to HelloWorld.class
java HelloWorld             # runs the bytecode

Output:

Hello, World!

Nota che passi HelloWorld a java, non HelloWorld.class o HelloWorld.java. Il launcher java accetta il nome completo della classe e trova il file .class corrispondente nel classpath.

Prova una variante

Modifica l'esempio eseguibile per stampare qualcos'altro — il tuo nome, l'anno corrente, un messaggio su più righe — e premi Run. Alcune idee:

System.out.println("Hello from Java " + System.getProperty("java.version"));
System.out.println("Line 1");
System.out.println("Line 2");
System.out.printf("%s is %d years old%n", "Ada", 36);

Gli ultimi due metodi da conoscere:

  • println — stampa il suo argomento e un a capo.
  • print — come println ma senza il carattere di nuova riga finale.
  • printf — formattazione in stile printf, come in C. %s inserisce una stringa, %d un numero intero e %n un a capo adatto alla piattaforma. Vedi Java String Formatting per il set completo di specificatori di formato.

Errori comuni dei principianti

Alcune cose che colgono di sorpresa i nuovi arrivati:

  • Nome file non corrispondente. Una public class HelloWorld deve essere in un file chiamato HelloWorld.java. Altrimenti javac restituisce un errore.
  • Punto e virgola mancante. Ogni istruzione ne ha bisogno di uno. I messaggi di errore del compilatore di solito indicano chiaramente quale riga.
  • Println vs println. Java è sensibile alle maiuscole.
  • Virgolette tipografiche. Copiare codice da un sito web che ha "gentilmente" trasformato " in " produrrà un errore del compilatore incomprensibile.

Cosa c'è dopo

Come compilare ed eseguire un programma Java approfondisce cosa fanno effettivamente javac e il launcher java, inclusi il classpath, i pacchetti e l'uso di jshell per esperimenti rapidi senza un programma completo. Per annotare il codice man mano che cresce, vedi Java Comments.

Esercizio

Pratica
Qual è la firma corretta del punto di ingresso per un programma Java?
Qual è la firma corretta del punto di ingresso per un programma Java?
Was this page helpful?