JVM vs JRE
Java è un linguaggio di programmazione multipiattaforma. Aderisce anche al principio "scrivi una volta, vai ovunque". Il programma scritto in Java può essere compilato in bytecode Java dal compilatore Java. Quindi, il bytecode può essere eseguito su qualsiasi piattaforma che esegue JRE (Java Runtime Environment). JRE include JVM (Java Virtual Machine), librerie di base (che implementa l'API Java) e altri file di supporto. JVM è una macchina di calcolo astratta che funge da mediatore tra le piattaforme specifiche JRE e il codice Java.
Cos'è JVM?
JVM è un tipo di macchina virtuale che viene utilizzata dalle macchine per eseguire bytecode Java. Secondo Sun Microsystems (che ha sviluppato Java fino a quando non è stato acquistato da Oracle, molto recentemente), ci sono più di 4 miliardi di dispositivi abilitati JVM nel mondo. Più in particolare, Java Virtual Machine è una macchina di calcolo astratta implementata su hardware e sistemi operativi standard. Una delle funzionalità importanti fornite da JVM è la gestione automatica delle eccezioni. In genere, una raccolta di librerie standard accompagna la JVM. In effetti, JRE è un pacchetto contenente la JVM e le classi che implementano l'API Java. JVM è un componente molto importante, che ospita la natura "compila una volta, eseguito ovunque" del linguaggio di programmazione Java. Finché la JVM è in esecuzione, il codice Java può essere eseguito su di esso, indipendentemente dalla piattaforma utilizzata nella macchina. Questo è il motivo per cui Java è chiamato un linguaggio multipiattaforma o multipiattaforma.
Cos'è JRE?
JRE è l'ambiente di esecuzione su cui viene eseguito il codice Java. In genere, JRE è composto da JVM, classi base standard (che implementano l'API Java di base) e altri file di supporto. Il tipo e la struttura di JRE variano a seconda del sistema operativo e dell'architettura della CPU. Quando viene eseguito il codice Java, JRE comunicherà con il sistema operativo, che a sua volta parlerà con i componenti hardware corrispondenti. Avere installato JRE sul tuo sistema è un must per eseguire qualsiasi codice java sul tuo computer. Tuttavia, JRE non include un compilatore, un debugger o altri strumenti necessari per lo sviluppo di programmi Java (come appletviewer e javac). Se è necessario sviluppare programmi in Java, è necessario disporre del JDK (Java Development Kit), che include anche JRE.
Qual è la differenza tra JVM e JRE?
Sebbene, nell'uso quotidiano, i termini JVM e JRE vengano usati in modo intercambiabile, hanno le loro differenze. JVM è una macchina virtuale che gira sopra il sistema operativo, mentre JRE è l'ambiente di esecuzione runtime. JVM è una parte di JRE. La specifica JVM funge da collegamento tra l'implementazione JRE specifica della piattaforma e le librerie Java standard. Pertanto, JVM è l'entità che fornisce l'astrazione dai dettagli di implementazione interna al programmatore. Ed è responsabile dell'interpretazione del bytecode compilato. Tuttavia, JVM ha bisogno delle librerie di base e di altri file di supporto per eseguire il bytecode java. Ma a volte, JRE è semplicemente identificato come un'implementazione di JVM.