Differenza tra JVM e JRE

Anonim

JVM vs JRE

Java è un linguaggio di programmazione cross-platform. Inoltre aderisce al principio "write once, run anywhere". Il programma scritto in Java può essere compilato in Java bytecode dal compilatore Java. Quindi, il bytecode può essere eseguito su qualsiasi piattaforma che esegue il JRE (Java Runtime Environment). JRE include la JVM (Java Virtual Machine), le librerie di base (che implementano 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.

Che cos'è JVM?

JVM è un tipo di macchina virtuale che viene utilizzato dalle macchine per eseguire il bytecode Java. Secondo Sun Microsystems (che ha sviluppato Java finché non è stato acquistato da Oracle, di recente), ci sono più di 4 miliardi di dispositivi JVM abilitati al mondo. Più in dettaglio, Java Virtual Machine è una macchina informatica astratta implementata su hardware e sistema operativo standard. Una delle funzionalità importanti fornite dalla JVM è la gestione automatizzata delle eccezioni. Tipicamente, una raccolta di librerie standard accompagna il JVM. Infatti, JRE è un bundle contenente il JVM e le classi che implementano l'API Java. JVM è una componente molto importante, che ospita la "compilare una volta, eseguire ovunque" la natura del linguaggio di programmazione Java. Finché il JVM è in esecuzione, il codice Java può essere eseguito in cima, indipendentemente dalla piattaforma utilizzata nella macchina. Ecco perché Java è chiamata una lingua cross-platform o multi-platform.

Che cos'è JRE?

JRE è l'ambiente di esecuzione in cui viene eseguito il codice Java. In genere JRE è composto dalle classi di base standard JVM (che implementano l'API Java di base) e da altri file di supporto. Il tipo e la struttura del JRE variano a seconda del sistema operativo e dell'architettura CPU. Quando viene eseguito il codice Java, il JRE comunicherà con il sistema operativo, che a sua volta parlerà con i relativi componenti hardware. Avere JRE installato sul tuo sistema è un must per eseguire qualsiasi codice java sulla tua macchina. Tuttavia, JRE non include un compilatore, un debugger o altri strumenti necessari per lo sviluppo di programmi Java (ad esempio appletviewer e javac). Se hai bisogno di sviluppare programmi in Java, devi disporre del JDK (Java Development Kit), che include anche il JRE.

Qual è la differenza tra JVM e JRE?

Anche se in uso quotidiano i termini JVM e JRE vengono utilizzati in modo intercambiabile, hanno le loro differenze. JVM è una macchina virtuale che funziona in cima al sistema operativo, mentre JRE è l'ambiente di esecuzione di runtime. JVM è una parte del JRE. La specifica JVM funge da collegamento tra l'implementazione di JRE specifiche per piattaforme e le librerie Java standard.Pertanto, JVM è l'entità che fornisce l'astrazione dai dettagli di implementazione interni al programmatore. Ed è responsabile dell'interpretazione del bytecode compilato. Tuttavia, JVM necessita delle librerie di base e di altri file di supporto per eseguire il bytecode di java. Ma a volte, JRE è semplicemente identificato come un'implementazione di JVM.