Java è un linguaggio di programmazione orientato agli oggetti (OOP). Ha una sintassi simile a C++ e viene utilizzato sopratutto per fare applicazioni lato server (applicazioni Backend), ma anche app desktop oltre ad app Android native. Per essere eseguite, le app Java richiedono che sulla macchina sia installata una Java Runtime Environment (JRE), mentre per svilupparle richiede una Java Development Kit (JDK). Quest'ultima comprende anche la JRE.
La Java Virtual Machine (JVM) è una macchina immaginaria (virtuale) che è in grado di eseguire file (classi) Java, scritte in bytecode. La JRE fondamentalmente contiene una JVM per eseguire programmi java e delle librerie Java (API).
Il programmatore scrive dei file con estensione .java, li compila con un compilatore (che controlla errori a tempo di compilazione,
come errori di sintassi) e, se non ci sono errori, il compilatore JAVAC (che è il compilatore standard) trasforma i file .java in file .class (scritti in bytecode).
Spesso questi passi vengono automatizzati con l'ausilio di un IDE, che è un programma che aiuta a scrivere ed eseguire codice,
segnala errori di compilazione in realtime e compila automaticamente le classi Java (file .java) per eseguire il programma.
Il fatto che le app Java siano eseguite su una JVM fa sì che questo linguaggio sia molto potente in quanto rende le app portabili, cioè indipendenti dal sistema operativo su cui vengono eseguite (perché vengono eseguite non direttamente dal SO ma dalla JVM).
Strumenti utilizzati
JDK 8: https://www.oracle.com/it/java/technologies/javase/javase-jdk8-downloads.html
Un IDE: consiglio IntelliJ Community Edition scaricabile da questo link:
https://www.jetbrains.com/idea/download/#section=windows