Table des matières:
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 réellement avec la JVM.
Techopedia explique Java Virtual Machine (JVM)
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 l'environnement d'exécution Java (JRE). C'est le JRE (JVM plus classes de base) qui permet au bytecode Java de s'exécuter sur n'importe quelle plate-forme. Les bytecodes, qui sont interprétés par la JVM, appellent simplement les classes trouvées dans le JRE quand elles ont besoin d'effectuer des actions qu'elles ne peuvent pas faire elles-mêmes. Certaines actions, comme celles dirigées vers le matériel sous-jacent ou le système d'exploitation, sont effectuées par la JVM. Les bytecodes manquent de fonctionnalités par eux-mêmes et ont besoin de la JVM pour effectuer de nombreuses tâches pour eux. Cette limitation perçue est en fait un avantage. Tout d'abord, il permet aux programmes Java d'être très petits par rapport aux autres programmes exécutables. Deuxièmement, et plus important encore, cela leur permet d'être très portables. Étant donné que chaque machine virtuelle Java est conçue sur mesure pour une plate-forme spécifique, un programme Java ne peut pas s'exécuter dessus, sauf si: (1) une machine virtuelle Java appropriée a é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-plate-forme.