Architettura JVM | Spiegato

Architettura JVM | Spiegato
JVM è una macchina astratta che viene utilizzata per eseguire programmi Java. In Java, il codice sorgente viene convertito in bytecode che dopo essere stato ulteriormente convertito in un codice macchina viene trasferito in memoria dalla macchina virtuale Java. In breve, JVM fornisce un ambiente di runtime per l'esecuzione del bytecode Java che lo rende un componente di Java Runtime Environment (JRE). Nel complesso, un JVM è responsabile del caricamento, del collegamento e dell'inizializzazione.

Architettura JVM

L'architettura interna di Java Virtual Machine è composta da tre parti principali.

1. Classloader

2. Area di memoria

3. Motore di esecuzione

Ecco una rappresentazione visiva dell'architettura JVM.

Sotto tutte le parti della macchina virtuale Java sono spiegati in dettaglio.

Classloader

Un Classloader in JVM si riferisce a un sottosistema responsabile del caricamento di file. Carica un programma Java ogni volta che eseguiamo un programma Java. Java fornisce i seguenti classloader.

UN. Bootstrap Classloader

Una superclasse di Classloader di estensione responsabile del caricamento di RT.File Jar

B. Classloader di estensione

Un figlio del classloader bootstrap e genitore del classloader System/Application, Extension ClassLoader carica i file JAR salvati nella directory.

C. Classloader di sistema/applicazione

Questo caricatore di classe carica i file di classe da ClassPath ed è un figlio di ClassLoader di estensione.

Area di memoria

Un'area di memoria JVM è costituita dalle seguenti parti.

UN. Area metodo

Lo scopo dell'area del metodo è salvare la struttura di classi come dati del metodo o dati sul campo, pool di runtime e codice per metodi.

B. Mucchio

Heap è un'area dati di runtime in cui vengono assegnati gli oggetti.

C. Pile

Stack è responsabile della memorizzazione di cornici, variabili locali e risultati parziali. Ha un ruolo importante nell'invocazione del metodo e nel reso del metodo. Ogni volta che viene creato un thread, viene creato uno stack JVM privato per quel particolare thread e viene creato un nuovo frame ogni volta che viene invocato un metodo e non appena l'invocazione termina il frame viene distrutto.

D. Registri PC

È responsabile di tenere gli indirizzi mentre vengono eseguite le istruzioni JVM.

e. Metodo nativo impilamenti

È responsabile per tenere tutti i metodi nativi richiesti in un'applicazione.

Motore di esecuzione

Un motore di esecuzione è costituito da quanto segue.

UN. Interprete

Esegue le istruzioni dopo aver letto il flusso di bytecode.

B. Compilatore just-in-time (JIT)

JIT migliora le prestazioni compilando parti di bytecode con funzionalità simili allo stesso modo, d'ora in poi, riducendo il tempo di compilazione complessivo.

C.Netturbino

Viene utilizzato per raccogliere oggetti che non sono referenziati e rimuoverli per liberare la memoria.

Interfaccia del metodo nativo

Aiuta a comunicare con applicazioni scritte in lingue diverse come C, C ++, ecc. È anche responsabile dell'aiutare il codice Java in esecuzione in JVM a chiamare librerie e applicazioni native.

Librerie di metodi

È costituito da biblioteche native (C, C ++) necessarie per il motore di esecuzione.

Conclusione

Java Virtual Machine (JVM) è una macchina astratta creata per eseguire programmi Java. L'architettura di JVM comprende tre parti principali che sono classloader, area di memoria e un motore di esecuzione. L'area di memoria e il motore di esecuzione sono inoltre consistono in alcune parti che hanno funzionalità diverse. Questo tutorial spiega l'architettura di Java Virtual Machine (JVM) che evidenzia le funzioni dei suoi diversi componenti.