Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

Machine virtuelle Java

Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voirJVM.

Machine virtuelle Java - Spécification Java 7.

Lamachine virtuelle Java (enanglaisJava virtual machine, abr.JVM) est unemachine virtuelle qui exécute des programmes compilés sous forme debytecode Java.

L'appareil est simulé par un logiciel spécifique à chaqueplateforme ou couple (machine/système d’exploitation) et permet aux applicationsJava 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.

La JVM permet d'exécuter d'autres langages que le langage Java (Scala, Kotlin, ...), 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 lapile : chaque niveau de pile contient les données propres à chaque opération.

Une spécification deSun[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 unramasse-miettes (la notion est citée dans la spécification[2], mais sans être formellement rendue obligatoire), ou uncompilateur à 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.

HotSpot, la machine virtuelle d'Oracle

[modifier |modifier le code]
Article détaillé :HotSpot.

HotSpot est la machine la plus utilisée. Elle a été créée et réalisée par Sun, elle est aujourd'hui propriété d'Oracle[3], depuis que cette dernière a racheté Sun. Elle est gratuite, propriétaire jusqu'à la version 6 (stable) etlibre à partir de la version 7.

Le,Sun Microsystems a publié les sources de sa machine virtuelle HotSpot et de son compilateur javac sous licenceGNU GPL.

La toute première version ne se comportait que comme uninterpréteur. Cette approche était pénalisante, car l'interprète passe plus de temps à interpréter qu'à exécuter. Puis est apparue lacompilation à la volée, qui traduit le bytecode enlangage machine, et exécute ce langage machine. Ensuite la machine virtuelle est devenue capable de détecter les portions les plus fréquemment utilisées pour concentrer les optimisations sur elles. Elle a été dotée d'unprofileur, et d'optimisations standards comme la mise à plat des boucles. Toutes ces opérations peuvent être faites en plusieurs passes, soit pour les améliorer progressivement, soit pour les annuler si elles se révèlent obsolètes[4].

Autres machines virtuelles Java

[modifier |modifier le code]
Article détaillé :Liste des machines virtuelles Java.

En développement

[modifier |modifier le code]

Abandonnées

[modifier |modifier le code]

Annexes

[modifier |modifier le code]

Liens internes

[modifier |modifier le code]

Liens externes

[modifier |modifier le code]

Références

[modifier |modifier le code]
  1. (en)The Java Virtual Machine Specification, Second edition
  2. (en)Garbage collection, index lettre G
  3. (en)https://openjdk.java.net/groups/hotspot/
  4. (en)Java theory and practice : Dynamic compilation and performance measurement
v ·m
Technologie
Général
Framework
Techniques
Langages de programmation
v ·m
Concepts généraux
Types de code
Compilation
anticipée
à la volée
Machines virtuelles
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Machine_virtuelle_Java&oldid=233197509 ».
Catégories :
Catégories cachées :

[8]ページ先頭

©2009-2026 Movatter.jp