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:
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 diHelloWorld.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 bytecodeOutput:
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— comeprintlnma senza il carattere di nuova riga finale.printf— formattazione in stile printf, come in C.%sinserisce una stringa,%dun numero intero e%nun 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 HelloWorlddeve essere in un file chiamatoHelloWorld.java. Altrimentijavacrestituisce 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.
Printlnvsprintln. 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.