A differenza del C, main non ritorna valori, quindi main è void.
Dovendo essere chiamato dal sistema, al di fuori dal nostro package, main dovrà essere public (come lo dovrà essere la classe che lo contiene).
L'attributo out è un PrintStream che per stampare possiede i metodi print, println e printf.
I metodi print e prinln sono sovraccaricati per tutti i tipi previsti in Java, quindi possono essere utilizzati per stampare qualsiasi tipo di dato.
Dato che non esistono le funzioni, main deve essere un metodo. Dovendo essere chiamato all'inizio, non avrà un'istanza e quindi dovrà essere static.
Venendo al codice interno alla main, sappiamo che non esistono variabili globali, quindi cout viene sostituito dal un attributo static della classe System: System.out
I paramtri di main in C definiscono un array di stringhe con la realtiva dimesione. In Java per le stringhe esiste al classe String, quindi il parametro di main sarà un vettore di stringhe: String[] args