Architecture JVM | Expliqué

Architecture JVM | Expliqué
JVM est une machine abstraite utilisée pour exécuter des programmes Java. En Java, le code source est converti en bytecode qui, après avoir été converti en un code machine est transféré à la mémoire par la machine virtuelle Java. En bref, JVM fournit un environnement d'exécution pour l'exécution de Java Bytecode, ce qui en fait un composant de Java Runtime Environment (JRE). Dans l'ensemble, un JVM est responsable du chargement, de la liaison et de l'initialisation.

Architecture JVM

L'architecture interne de la machine virtuelle Java se compose de trois pièces principales.

1. Chargeur de classe

2. Zone de mémoire

3. Moteur d'exécution

Voici une représentation visuelle de l'architecture JVM.

Sous toutes les parties de la machine virtuelle Java sont expliquées en détail.

Chargeur de classe

Un chargeur de classe dans JVM fait référence à un sous-système responsable du chargement des fichiers. Il charge un programme Java à chaque fois que nous exécutons un programme Java. Java fournit les chargeurs de classe suivants.

un. Bootstrap classloader

Une superclasse de chargeur de classe d'extension qui est responsable du chargement du RT.dossier

b. Extension Classloader

Enfant de Classstrap classloader et parent de System / Application Classloader, Extension Classloader charge les fichiers JAR qui sont enregistrés dans le répertoire.

c. Système / Application Classloader

Ce chargeur de classe charge les fichiers de classe à partir du chemin de classe et est un enfant d'extension Classloader.

Zone de mémoire

Une zone de mémoire JVM se compose des parties suivantes.

un. Zone de méthode

Le but de la zone de méthode est de sauvegarder la structure des classes telles que les données de méthode ou les données sur le terrain, le pool d'exécution et le code pour les méthodes.

b. Tas

Heap est une zone de données d'exécution où les objets sont alloués.

c. Piles

Stack est responsable du stockage des cadres, des variables locales et des résultats partiels. Il joue un rôle important dans l'invocation de la méthode et le retour de la méthode. Chaque fois qu'un thread est créé, une pile JVM privée pour ce fil particulier est créée simultanément et un nouveau cadre est créé à chaque fois qu'une méthode est invoquée, et dès que l'invocation se termine, le cadre est détruit.

d. PC REGISTERS

Il est chargé de maintenir les adresses pendant que les instructions JVM sont en cours d'exécution.

e. Piles de méthode native

Il est responsable de la tenue de toutes les méthodes natives requises dans une application.

Moteur d'exécution

Un moteur d'exécution se compose de ce qui suit.

un. Interprète

Il exécute des instructions après avoir lu le flux bytecode.

b. Compilateur juste à temps (JIT)

JIT améliore les performances en compilant des parties de bytecode avec des fonctionnalités similaires à la même chose, désormais, réduisant le temps de compilation global.

c.Éboueur

Il est utilisé pour collecter des objets qui ne sont pas référencés et les supprimer pour libérer la mémoire.

Interface de méthode native

Il aide à communiquer avec des applications écrites dans différentes langues comme C, C ++, etc. Il est également chargé d'aider le code Java en cours d'exécution dans JVM pour appeler les bibliothèques et les applications natives.

Bibliothèques de méthode

Il se compose de bibliothèques indigènes (C, C ++) qui sont nécessaires au moteur d'exécution.

Conclusion

Java Virtual Machine (JVM) est une machine abstraite conçue pour exécuter les programmes Java. L'architecture de JVM comprend trois pièces principales qui sont un chargeur de classe, une zone de mémoire et un moteur d'exécution. La zone de mémoire et le moteur d'exécution se composent en outre de certaines pièces qui ont des fonctionnalités différentes. Ce tutoriel explique l'architecture de Java Virtual Machine (JVM) mettant en évidence les fonctions de ses différents composants.