Différence entre JDK, JRE et JVM

La différence entre JDK, JRE et JVM est l’une des questions d’entretien populaires. Vous pourriez également être invité à expliquer JDK vs JRE vs JVM.

Différence entre JDK, JRE et JVM

JDK, JRE et JVM sont des concepts fondamentaux du langage de programmation Java. Nous n’utilisons pas ces concepts en programmation. Mais, en tant que développeur Java, nous devrions en connaître les bases.

1. JDK

Java Development Kit, alias JDK, est le composant principal de l’environnement Java et fournit tous les outils, exécutables et binaires nécessaires pour compiler, déboguer et exécuter un programme Java. JDK est un logiciel spécifique à une plate-forme et c’est pourquoi nous avons des installateurs séparés pour les systèmes Windows, Mac et Unix. On peut dire que JDK est le superset de JRE car il contient JRE avec le compilateur Java, le débogueur et les classes de base.

2. JVM

JVM est le cœur du langage de programmation Java. Lorsque nous exécutons un programme Java, JVM est responsable de la conversion du bytecode en code spécifique à la machine. JVM est également dépendant de la plate-forme et fournit des fonctions principales de Java telles que la gestion de la mémoire, la collecte des déchets, la sécurité, etc. JVM est personnalisable et nous pouvons utiliser des options Java pour le personnaliser. Par exemple, allouer une mémoire minimale et maximale à JVM. JVM est appelé virtuel car il fournit une interface qui ne dépend pas du système d’exploitation sous-jacent et du matériel de la machine. Cette indépendance vis-à-vis du matériel et du système d’exploitation permet d’écrire des programmes Java une fois pour toutes.

3. JRE

JRE est l’implémentation de JVM. Il fournit une plate-forme pour exécuter des programmes Java. JRE se compose de JVM, de binaires Java et d’autres classes pour exécuter tout programme avec succès. JRE ne contient pas d’outils de développement tels que le compilateur Java, le débogueur, JShell, etc. Si vous voulez simplement exécuter un programme Java, vous pouvez installer uniquement JRE. Vous n’avez pas besoin de JDK car il n’est pas nécessaire de développer ou de compiler du code source Java. Maintenant que nous avons une compréhension de base de JDK, JVM et JRE, regardons les différences entre eux.

JDK vs JRE vs JVM

Regardons quelques-unes des différences importantes entre JDK, JRE et JVM.

  1. JDK est destiné au développement, tandis que JRE est destiné à l’exécution des programmes Java.
  2. Le JDK et le JRE contiennent tous deux la JVM afin que nous puissions exécuter nos programmes Java.
  3. La JVM est le cœur du langage de programmation Java et offre une indépendance de plate-forme.

Le compilateur Just-in-time (JIT)

Parfois, vous trouverez JIT aux côtés de JVM, JDK et JRE dans les manuels. JIT fait partie de la JVM qui optimise le processus de conversion du bytecode en langage spécifique à la machine. Il compile les bytecode similaires en même temps et réduit le temps global nécessaire à la compilation du bytecode en langage spécifique à la machine.

Source:
https://www.digitalocean.com/community/tutorials/difference-jdk-vs-jre-vs-jvm