Differenza tra JRE vs JVM

Qui, capiremo cos'è JVM (Java virtual machine), cos'è JRE (Java Runtime Environment). Inoltre, studieremo anche le principali differenze tra JVM e JRE. In questo argomento, impareremo a conoscere JRE vs JVM.

Che cos'è JVM?

La Java Virtual Machine (JVM) è una macchina virtuale che risiede sul computer ed esegue il codice byte java. Java Virtual Machine comprende solo il codice byte, ecco perché esiste un compilatore javac che converte il codice sorgente (.java) in codice byte (.class) che è compreso da JVM. Sebbene JVM installato in diversi sistemi operativi sia diverso, l'output prodotto da JVM è coerente in tutti i sistemi operativi.

Componenti di JVM

Di seguito sono riportati diversi componenti presenti all'interno di JVM:

1. ClassLoader: la funzione principale del programma di caricamento classi è leggere il file .class e salvare il bytecode nell'area del metodo della JVM.

2. Area dei metodi: l'area dei metodi della Java Virtual Machine memorizza tutte le informazioni relative alle classi di tutte le classi caricate dal programma di caricamento classi.

3. Heap Area: Heap Area è una parte di JVM in cui si trovano gli oggetti creati. JVM crea un oggetto classe per ogni file .class caricato dal programma di caricamento classi.

4. Stack: questa parte di JVM memorizza le variabili temporanee.

5. Registri PC: i registri PC registrano quale istruzione è stata eseguita e quale è la riga successiva da eseguire.

6. Stack del metodo nativo : lo stack del metodo nativo contiene le informazioni sul codice nativo. È scritto in linguaggi di programmazione diversi da Java.

7. Motore di esecuzione: il motore di esecuzione di jvm è responsabile dell'esecuzione del bytecode o del codice compilato. Il motore di esecuzione di jvm contiene:

  • Processore virtuale: il processore virtuale è responsabile dell'esecuzione sequenziale dei codici operativi.
  • Interprete: l'interprete interpreta il bytecode. È responsabile della lettura del flusso di codice byte, dell'interpretazione delle istruzioni bytecode e della loro esecuzione attraverso il processore virtuale. Ma lo svantaggio dell'interprete è che quando un metodo viene chiamato più volte, ogni volta c'è un requisito per una nuova interpretazione.
  • Compilatore Just-In-Time (JIT): viene sostanzialmente utilizzato per il miglioramento delle prestazioni. Viene utilizzato per ovviare allo svantaggio dell'interprete quando JVM trova codice ripetuto e utilizza il compilatore JIT che compila il bytecode e lo trasforma in codice nativo. Questo codice nativo viene utilizzato direttamente nelle chiamate ripetute al metodo, che a sua volta fornisce un drastico miglioramento delle prestazioni.

Dai dettagli sopra elencati componenti, le funzioni di JVM possono essere riassunte come:

  • JVM carica il codice.
  • JVM verifica il codice caricato.
  • JVM esegue il codice se è valido.
  • JVM fornisce un ambiente di runtime.

Il funzionamento di JVM può essere spiegato attraverso il flusso seguente:

Che cos'è JRE?

Java Runtime Environment fa parte del Java Development Kit (JDK).

Java Runtime Environment (JRE) è un pacchetto di installazione che fornisce un ambiente per eseguire codice java. Va notato che JRE viene utilizzato solo dagli utenti finali coloro che desiderano eseguire il codice java. JRE contiene JVM, ovvero JVM è un sottoinsieme di JRE. Java Runtime Environment include quanto segue:

Tecnologie di distribuzione.

  1. Toolkit di interfaccia utente come Abstract Window Toolkit (AWT), Swing, Java Naming and Directory Interface (JBDI), Java 2D, Print Service, Drag and Drop (DND), ecc.
  2. Librerie Lang e util come lang e util, gestione, zip, reflection, JAR, API di preferenza, concorrenza di espressioni regolari e utility multithreading, registrazione e altro.
  3. Librerie di base tra cui input-output (I / 0), matematica, rete, serializzazione del meccanismo di override, parser XML XML, Java Native Interface (JNI).
  4. Librerie di integrazione, ad esempio Interface Definition Language, Java DataBase Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming and Directory Interface (JNDI).
  5. Java Virtual Machine (JVM).

Confronto testa a testa tra JRE vs JVM (infografica)

Di seguito sono riportate le 8 principali differenze tra JRE e JVM

Differenze chiave tra JRE e JVM

Di seguito sono riportate le principali differenze tra JRE e JVM

  • La funzione principale di JRE è quella di fornire un ambiente di runtime per eseguire applicazioni java mentre JVM converte il codice byte in codice macchina per l'esecuzione e fornisce l'indipendenza della piattaforma.
  • JRE funge da contenitore e jvm funge da contenuto.
  • JRE è composto da librerie JVM + per eseguire applicazioni mentre jvm contiene solo un ambiente di runtime per l'esecuzione di bytecode Java.

Tabella comparativa tra JRE vs JVM

Discutiamo il miglior confronto tra JRE vs JVM

Base di confrontoJREJVM
Modulo completoLa forma completa di JRE è Java Runtime Environment.La forma completa di JVM è Java Virtual Machine.
DefinizioneJava Runtime Environment fa parte di Java Development Kit (JDK) che comprende una JVM, classi principali e librerie di supporto. La sua funzione principale è fornire un ambiente di runtime per eseguire il codice java.Java Virtual Machine (JVM) è come un computer virtuale che esegue una serie di istruzioni precompilate. Quando un compilatore Java compila il codice sorgente, genera un set di istruzioni chiamato bytecode (file .class). Java Virtual Machine interpreta le istruzioni bytecode e le converte in codice macchina per la sua esecuzione.
Contenitore e contenutoJRE funge da contenitore che contiene JVM, librerie e altri file. Inoltre, JRE non contiene strumenti di sviluppo come compilatore e debugger.JVM fa parte di JRE. Può essere considerato come un sottoinsieme di JRE.
Scopo dello sviluppoNon viene utilizzato a scopo di sviluppo.È utilizzato per scopi di sviluppo.
Scopo correnteViene utilizzato per l'esecuzione del codice Java.Non viene utilizzato per l'esecuzione del codice Java.
Composto daJRE è composto da librerie JVM + per eseguire applicazioni.Contiene solo un ambiente di runtime per l'esecuzione di bytecode Java.
Sottoinsieme diÈ un sottoinsieme di JDK.È un sottoinsieme di JRE.
UtensiliContiene librerie di classi necessarie per eseguire i programmi.Non contiene strumenti.

Conclusione - JRE vs JVM

Dall'articolo, abbiamo una chiara comprensione sia di Java Runtime Environment (JRE) che di Java Virtual Machine (JVM), che sono le parti più importanti di Java Development Kit (JDK).

Articoli consigliati

Questa è una guida a JRE vs JVM. Qui abbiamo discusso delle differenze chiave tra JRE e JVM con infografica e tabella comparativa. Puoi anche dare un'occhiata ai seguenti articoli per saperne di più -

  1. Java vs Node JS
  2. Groovy vs Java
  3. Java vs C #
  4. Java vs JavaScript

Categoria: