Java Virtual Machine (JVM), différence JDK, JRE & JVM – Core Java (Français)

0 Comments

Java est un langage de programmation de haut niveau. Un programme écrit dans un langage de haut niveau ne peut pas être exécuté directement sur une machine. Tout d’abord, il doit être traduit dans ce langage machine particulier. Le compilateur javac fait cette chose, il prend le programme java (.fichier java contenant le code source) et le traduit en code machine (appelé byte code ou .fichier de classe).,

Java Virtual Machine (JVM) est une machine virtuelle qui réside dans la machine réelle (votre ordinateur) et le langage machine pour JVM est le code octet. Cela facilite la tâche du compilateur car il doit générer du code octet pour la JVM plutôt que du code machine différent pour chaque type de machine. JVM exécute le code octet généré par le compilateur et produit la sortie. JVM est celui qui rend la plate-forme java indépendante.

donc, maintenant nous avons compris que la fonction principale de la JVM est d’exécuter le code octet produit par le compilateur., Chaque système d’exploitation a une JVM différente, mais la sortie qu’ils produisent après l’exécution du code octet est la même sur tous les systèmes d’exploitation. Ce qui signifie que le code octet généré sous Windows peut être exécuté sur Mac OS et vice versa. C’est pourquoi nous appelons java en tant que langage indépendant de la plate-forme. La même chose peut être vue dans le diagramme ci-dessous:

donc pour tout résumer: la machine virtuelle Java (JVM) est la machine virtuelle qui s’exécute sur la machine réelle (votre ordinateur) et exécute le code D’octets Java., La JVM ne comprend pas le code source Java, c’est pourquoi nous avons besoin d’un compilateur javac qui compile *.fichiers java à obtenir *.fichiers de classe contenant les codes d’octets compris par la JVM. JVM rend java portable (écrire une fois, exécuter n’importe où). Chaque système d’exploitation a une JVM différente, mais la sortie qu’ils produisent après l’exécution du code octet est la même sur tous les systèmes d’exploitation.

JVM Architecture


Permet de voir comment la JVM fonctionne:
Classe de Chargeur: Le chargeur de classe lit le .,class file et enregistrez le code octet dans la zone de méthode.

Zone de méthode: il n’y a qu’une seule zone de méthode dans une JVM qui est partagée entre toutes les classes. Cela contient les informations de niveau de classe de chacun .fichier de classe.

tas: le tas est une partie de la mémoire JVM où les objets sont alloués. JVM crée un objet de classe pour chacun .fichier de classe.

Stack: Stack fait également partie de la mémoire JVM mais contrairement au tas, il est utilisé pour stocker des variables temporaires.

registres PC: cela garde la trace de l’instruction qui a été exécutée et de celle qui va être exécutée., Puisque les instructions sont exécutées par des threads, chaque thread a un registre PC séparé.

pile de méthode Native: une méthode native peut accéder aux zones de données d’exécution de la machine virtuelle.

interface de méthode Native: elle permet au code java d’appeler ou d’être appelé par des applications natives. Les applications natives sont des programmes spécifiques au matériel et au système d’exploitation d’un système.

Garbage collection: une instance de classe est explicitement créée par le code java et après utilisation, elle est automatiquement détruite par garbage collection pour la gestion de la mémoire.,

JVM Vs JRE Vs JDK

JRE: JRE est l’environnement dans lequel la machine virtuelle java s’exécute. JRE contient la machine virtuelle Java (JVM), les bibliothèques de classes et d’autres fichiers à l’exclusion des outils de développement tels que le compilateur et le débogueur.
ce qui signifie que vous pouvez exécuter le code dans JRE mais vous ne pouvez pas développer et compiler le code dans JRE.

JVM: comme nous l’avons discuté ci-dessus, JVM exécute le programme en utilisant la classe, les bibliothèques et les fichiers fournis par JRE.,

JDK: JDK est un sur-Ensemble de JRE, il contient tout ce que JRE A avec des outils de développement tels que le compilateur, le débogueur, etc.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *