Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Machine virtuelle Java — Wikipédia
Machine virtuelle Java — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voir JVM.

Machine virtuelle Java - Spécification Java 7

La machine virtuelle Java (en anglais Java virtual machine, abr. JVM) est une machine virtuelle 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.

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 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.

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) et libre à partir de la version 7.

Le 11 novembre 2006, Sun Microsystems a publié les sources de sa machine virtuelle HotSpot et de son compilateur javac sous licence GNU GPL.

La toute première version ne se comportait que comme un interpréteur. Cette approche était pénalisante, car l'interprète passe plus de temps à interpréter qu'à exécuter. Puis est apparue la compilation à la volée, qui traduit le bytecode en langage 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'un profileur, 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]
  • OpenJ9, développé par IBM et la fondation Eclipse
  • JamaicaVM, machine virtuelle spécialisée dédiée à l'électronique embarquée et qui prend en compte les contraintes temps-réel des applications
  • Platform Prime, développé par Azul

Abandonnées

[modifier | modifier le code]
  • Celle de Microsoft était fournie avec le système d’exploitation Windows. Sun pensait que la machine pouvait être boguée volontairement pour contrer l’avancée du langage Java (portablité sur plusieurs systèmes d’exploitation donc risque de perte pour Microsoft). À la suite d'un procès gagné par Sun, elle n’est plus fournie avec Windows.
  • JRockit développée initialement par BEA maintenant Oracle Corporation. Elle est principalement utilisée pour Weblogic.
  • Apple en a créé une pour son système d'exploitation, macOS.
  • Jikes RVM
  • Apache Harmony (en), est un projet de plateforme Java de la fondation Apache contenant une JVM.
  • GIJ, « sous-projet » de machine virtuelle Java du projet GNU.
  • Dalvik, machine virtuelle développée par Google pour Android.
  • SableVM
  • JamVM
  • Kaffe
  • CACAO

Annexes

[modifier | modifier le code]

Liens internes

[modifier | modifier le code]
  • Machine SECD

Liens externes

[modifier | modifier le code]
  • (en) Spécifications de la JVM
  • (en) Liste des machines virtuelles Java

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) http://openjdk.java.net/groups/hotspot/
  4. ↑ (en) Java theory and practice : Dynamic compilation and performance measurement
v · m
Java
  • Oracle
  • Sun Microsystems
Technologie
  • Langage Java
  • Plateforme
  • Environnement de développement (JDK)
  • Machine virtuelle Java (JVM)
  • Environnement d’exécution (JRE)
Général
  • Java Community Process
Framework
  • Micro Edition (ME)
  • Standard Edition (SE)
  • Jakarta EE
  • Java Card
  • JavaFX
Techniques
  • Bytecode
  • Applets
  • Servlets
  • Scriptlets
  • JavaServer Pages
  • .class
  • Javadoc
Langages de programmation
  • Ceylon
  • Clojure
  • Fortress
  • Groovy
  • Java
  • Kotlin
  • Oxygene (en)
  • Python (Jython)
  • Ruby (JRuby)
  • Scala
  • Xtend
v · m
Exécution informatique
Concepts généraux
  • Programme informatique
  • Langage intermédiaire
  • Chaîne de compilation
  • Fichier exécutable
  • Interprétation
  • Environnement d'exécution
Types de code
  • Code source
  • Code objet
  • Bytecode
  • Code machine
  • Microcode
  • Instruction-machine
Compilation
  • Compilation à la volée
  • Compilation anticipée
  • Préprocesseur
  • Compilateur source à source
anticipée
  • GNU Compiler Collection (C et C++)
  • LLVM
  • LDL
  • GHC (Haskell)
  • Javac (Java)
  • Phalanger (PHP)
  • Free Pascal (Pascal)
à la volée
  • V8, SpiderMonkey (Javascript)
  • PyPy (Python)
Machines virtuelles
  • ART
  • CIL (C#, F#, Visual Basic .NET)
  • Machine virtuelle Java
    • HotSpot
    • GraalVM
  • HHVM (PHP)
  • CPython (Python)
  • icône décorative Portail de l’informatique
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Machine_virtuelle_Java&oldid=226773380 ».
Catégories :
  • Machine virtuelle
  • Java (langage)
  • Plateforme Java
Catégories cachées :
  • Article contenant un appel à traduction en anglais
  • Portail:Informatique/Articles liés
  • Portail:Technologies/Articles liés
  • Portail:Programmation informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id