Définition - Que signifie Java Virtual Machine (JVM)?
La machine virtuelle Java (JVM) est une couche d'abstraction entre une application Java et la plate-forme sous-jacente. Comme son nom l'indique, la JVM agit comme une machine ou un processeur «virtuel». Aux bytecodes composant le programme, ils communiquent avec une machine physique; cependant, ils interagissent en fait avec la JVM.
Definir Tech explique la machine virtuelle Java (JVM)
La JVM permet à la portabilité Java de s'exécuter dans des applications indépendantes de la plate-forme et du matériel. C'est une grande partie de la philosophie «écrire une fois, exécuter n'importe où (WORA)». La JVM fait en fait partie de Java Runtime Environment (JRE). C'est le JRE (JVM plus classes de base) qui permet au bytecode Java de s'exécuter sur n'importe quelle plateforme. Les codes d'octets, qui sont interprétés par la JVM, appellent simplement les classes trouvées dans le JRE lorsqu'ils ont besoin d'effectuer des actions qu'ils ne peuvent pas faire par eux-mêmes. Certaines actions, comme celles dirigées vers le matériel sous-jacent ou le système d'exploitation, sont exécutées par la JVM. Les codes d'octets manquent de fonctionnalités par eux-mêmes et ont besoin de la JVM pour effectuer de nombreuses tâches à leur place. Cette limitation perçue est en fait un avantage. Premièrement, il permet aux programmes Java d'être très petits par rapport à d'autres programmes exécutables. Deuxièmement, et plus important encore, cela leur permet d'être très portables. Étant donné que chaque JVM est faite sur mesure pour une plate-forme spécifique, un programme Java ne peut pas s'exécuter sur elle à moins que: (1) Une JVM appropriée ait été créée pour elle, et; (2) Cette JVM a été installée dessus. La portabilité des programmes Java dépend donc entièrement de la présence d'une JVM spécifique. La communication entre une application et chaque plate-forme sous-jacente peut être très sophistiquée, mais la JVM la gère bien en fournissant une couche d'abstraction entre les deux. En tant que tel, les développeurs n'ont pas besoin d'être conscients des subtilités impliquées pour chaque paire application-plateforme.