La machine virtuelle Java (en anglais Java virtual machine, abr. JVM) est un appareil informatique fictif qui exécute des programmes compilés sous forme de bytecode Java.
L'appareil est simulé par un logiciel spécifique à chaque plateforme ou couple (machine/système d’exploitation) et permet aux applications Java compilées en bytecode de produire les mêmes résultats quelle que soit la plate-forme, tant que celle-ci est pourvue de la machine virtuelle Java adéquate.
Une machine virtuelle Java permet d'exécuter d'autres langages que le langage Java, du moment qu'un compilateur transforme les expressions de cet autre langage en une série d'octets respectant le format binaire d'une classe Java.
La machine virtuelle exécute les instructions données par le bytecode contenu dans la classe Java en suivant le modèle de la pile : chaque niveau de pile contient les données propres à chaque opération.
Une spécification de Sun[1] décrit les fonctions et propriétés que doivent respecter toutes les machines virtuelles java. De plus, la plupart de ces machines comportent un ramasse-miettes (la notion est citée dans la spécification[2], mais sans être formellement rendue obligatoire), ou un compilateur à la volée.
Le compilateur Java faisant peu d'optimisations, c'est à la machine virtuelle de les faire, selon les objectifs propres à cette dernière.
© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search