Java Virtual Machine (JVM) macchina virtuale

Quando ci si avvicina al mondo Java per avviare un percorso di studio su questo linguaggio è necessario partire dalla Java virtual machine (JVM); ciò non è dovuto alla OOP “object oriented programming” sul quale Java è impiantato ma piuttosto alla portabilità che lo contraddistingue da altri linguaggi.

Cosa è la Java Virtual Machine?

JVM è l’acronimo di “Java Virtual Machine” che come si può intuire in italiano sta per (Macchina virtuale Java); ed è il componente che serve a far funzionare il software scritto in linguaggio Java e non solo, di proprietà della Oracle.

Perché è importante la Java Virtual Machine?

La macchina virtuale Java simula il processore per l’ elaborazione delle applicazioni sia per il lato client che server. Emula il byte code generato dal compilatore javac eseguendo le istruzioni generate; dobbiamo aggiungere a quest’ultimo pezzo che il compilatore in questione, di fatto restituisce una semi compilazione grazie al JIT (Just in time) e non una compilazione completa come avviene in altri linguaggi alla C o C++.

jvm
Java Virtual Machine, Official documentation Oracle

Java Runtime Enviroment

La JVM ospita un insieme di classi standard coordinate tra di loro e scritte in OOP; questo insieme e definito come JRE (Java Runtime Enviroment) ed è il cuore di tutto il sistema Java.

Java Development Kit

il JDK (Java Development Kit) contiene gli strumenti di sviluppo necessari e di controllo per le applicazioni create in codice Java. Inclusi nella JDK ricordiamo alcuni componenti come il  Debugger per il riscontro degli errori, un Applet Viewer per mostrare in anteprima le Applet, il Javadoc che genera in automatico la documentazione in ipertesto di una applicazione partendo dai commenti; il JAR (java archive) un insieme di librerie correlate in formato compresso.

Java virtual machine: schema
Java virtual machine: immagine schema.

Aiuto per i programmatori Java

Quindi, il JDK possiamo definirlo o come un estensione del JRE visto dal lato della Java Virtual Machine oppure come il core visto da un programmatore. Proseguiamo definendo anche l’ SDK che riesce ad ospitare al suo interno il JDK e tutto quello che serve per programmare al meglio;

raggruppando insieme i diversi strumenti utili, offre una soluzione completa ed accomodante per gli sviluppatori; alcuni riferimenti che potrebbero chiarire il concetto di SDK può essere l’ IDE Eclipse e Netbeans che integrano questa tecnologia e ci permettono di interagire anche ad interfaccia grafica, menu, pop up eccetera. Infine ricordiamo che il JDK oltre a quello di Oracle ed IBM ve ne sono anche altri di tipo Open Source; ad esempio Open JDK.