Différence entre JRE et JVM

Ici, nous comprendrons ce qu'est JVM (machine virtuelle Java), qu'est-ce que JRE (Java Runtime Environment). De plus, nous étudierons également les principales différences entre JVM et JRE. Dans cette rubrique, nous allons découvrir JRE vs JVM.

Qu'est-ce que la JVM?

La machine virtuelle Java (JVM) est une machine virtuelle qui réside sur votre ordinateur et exécute du code d'octet java. La machine virtuelle Java ne comprend que le code octet, c'est pourquoi il existe un compilateur javac qui convertit le code source (.java) en code octet (.class) qui est compris par JVM. Bien que JVM installée dans différents systèmes d'exploitation soit différente, la sortie produite par JVM est cohérente sur tous les systèmes d'exploitation.

Composants de JVM

Voici les différents composants présents dans JVM:

1. ClassLoader: La fonction principale du chargeur de classe est de lire le fichier .class et d'enregistrer le bytecode dans la zone de méthode de la JVM.

2. Zone de méthode: la zone de méthode de la machine virtuelle Java stocke toutes les informations relatives aux classes de toutes les classes en cours de chargement par le chargeur de classe.

3. Zone de tas: la zone de tas fait partie de la machine virtuelle Java où se trouvent les objets créés. JVM crée un objet classe pour chaque fichier .class chargé par le chargeur de classe.

4. Stack: cette partie de JVM stocke des variables temporaires.

5. Registres PC: Les registres PC conservent un enregistrement de l'instruction qui a été exécutée et de la prochaine ligne à exécuter.

6. Pile de méthode native : la pile de méthode native contient les informations de code natif. Il est écrit dans d'autres langages de programmation que Java.

7. Moteur d'exécution: Le moteur d'exécution de jvm est responsable de l'exécution du bytecode ou du code compilé. Le moteur d'exécution de jvm contient:

  • Processeur virtuel: le processeur virtuel est responsable de l'exécution séquentielle des codes d'opération.
  • Interprète: L'interprète interprète le bytecode. Il est chargé de lire le flux de code d'octets, d'interpréter les instructions de bytecode et de les exécuter via le processeur virtuel. Mais l'inconvénient de l'interpréteur est que lorsqu'une méthode est appelée plusieurs fois, chaque fois qu'une nouvelle interprétation est requise.
  • Compilateur Just-In-Time (JIT): Il est essentiellement utilisé pour l'amélioration des performances. Il est utilisé afin de surmonter l'inconvénient de l'interpréteur lorsque JVM trouve du code répété, il utilise le compilateur JIT qui compile le bytecode et le transforme en code natif. Ce code natif est directement utilisé dans les appels de méthode répétés, ce qui à son tour améliore considérablement les performances.

À partir des détails énumérés ci-dessus, les fonctions de JVM peuvent être résumées comme suit:

  • JVM charge le code.
  • JVM vérifie le code chargé.
  • JVM exécute le code s'il est valide.
  • JVM fournit un environnement d'exécution.

Le fonctionnement de JVM peut être expliqué à travers le flux ci-dessous:

Qu'est-ce que JRE?

Java Runtime Environment fait partie du kit de développement Java (JDK).

Java Runtime Environment (JRE) est un package d'installation qui fournit un environnement pour exécuter du code java. Il convient de noter que JRE est utilisé uniquement par les utilisateurs finaux qui souhaitent exécuter du code java. JRE contient JVM qui est JVM est un sous-ensemble de JRE. L'environnement d'exécution Java comprend les éléments suivants:

Technologies de déploiement.

  1. Boîtes à outils d'interface utilisateur comme la boîte à outils de fenêtre abstraite (AWT), Swing, Java Naming and Directory Interface (JBDI), Java 2D, Print Service, Drag and Drop (DND), etc.
  2. Lang et util bibliothèques comme lang et util, gestion, zip, réflexion, JAR, API de préférence, les expressions régulières Concurrence et utilitaires multithreading, Logging et autres.
  3. Bibliothèques de base, y compris Input-output (I / 0), Math, Networking, Override Mechanism Serialization, Java XML parsers, Java Native Interface (JNI).
  4. Bibliothèques d'intégration, par exemple Interface Definition Language, Java DataBase Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming and Directory Interface (JNDI).
  5. Machine virtuelle Java (JVM).

Comparaison directe entre JRE et JVM (infographie)

Voici les 8 principales différences entre JRE et JVM

Différences clés entre JRE et JVM

Voici les principales différences entre JRE et JVM

  • La fonction principale de JRE est de fournir un environnement d'exécution pour exécuter des applications java tandis que JVM convertit le code octet en code machine pour l'exécution et offre l'indépendance de la plate-forme.
  • JRE agit comme conteneur et jvm agit comme contenu.
  • JRE est composé de bibliothèques JVM + pour exécuter des applications tandis que jvm contient uniquement un environnement d'exécution pour exécuter le bytecode Java.

Tableau de comparaison entre JRE et JVM

Discutons de la meilleure comparaison entre JRE et JVM

Base de comparaisonJREJVM
Formulaire completLa forme complète de JRE est l'environnement d'exécution Java.La forme complète de JVM est Java Virtual Machine.
DéfinitionJava Runtime Environment fait partie du Java Development Kit (JDK) qui comprend une JVM, des classes de base et des bibliothèques de support. Sa fonction principale est de fournir un environnement d'exécution pour exécuter du code java.La machine virtuelle Java (JVM) est comme un ordinateur virtuel qui exécute un ensemble d'instructions précompilées. Lorsqu'un compilateur Java compile le code source, il génère un ensemble d'instructions appelé bytecode (fichiers .class). La machine virtuelle Java interprète les instructions de bytecode et les convertit en code machine pour son exécution.
Conteneur et contenuJRE agit comme un conteneur qui contient JVM, des bibliothèques et d'autres fichiers. De plus, JRE ne contient pas d'outils de développement comme le compilateur et le débogueur.JVM fait partie de JRE. Il peut être considéré comme un sous-ensemble de JRE.
Objectif de développementIl n'est pas utilisé à des fins de développement.Il est utilisé à des fins de développement.
Objectif de la courseIl est utilisé pour exécuter du code java.Il n'est pas utilisé pour exécuter du code java.
Composé deJRE est composé de bibliothèques JVM + pour exécuter des applications.Il contient uniquement un environnement d'exécution pour exécuter le bytecode Java.
Sous-ensemble deIl s'agit d'un sous-ensemble de JDK.Il s'agit d'un sous-ensemble de JRE.
OutilsIl contient les bibliothèques de classes nécessaires à l'exécution des programmes.Il ne contient aucun outil.

Conclusion - JRE vs JVM

De l'article, nous avons une compréhension claire de Java Runtime Environment (JRE) et de Java Virtual Machine (JVM) qui sont les parties les plus importantes de Java Development Kit (JDK).

Articles recommandés

Ceci est un guide de JRE vs JVM. Ici, nous avons discuté des différences clés entre JRE et JVM avec des infographies et un tableau de comparaison. Vous pouvez également consulter les articles suivants pour en savoir plus -

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