Leçon 4 : Comprendre la compilation et la JVM
L'architecture de Java est unique car elle utilise une étape intermédiaire (le bytecode) pour atteindre l'indépendance vis-à-vis des plateformes.
Le processus d'exécution Java
Le processus comprend deux étapes principales :
- Compilation (via
javac) : Le compilateur Java prend votre code source lisible par l'homme (fichier.java) et le traduit en bytecode indépendant de la plateforme (fichier.class). - Interprétation/Exécution (via
javaet la JVM) : La JVM lit le bytecode (fichier.class) et l'exécute sur le système d'exploitation spécifique de la machine hôte.
mermaid sequenceDiagram participant Developer participant SourceCode participant Compiler participant ByteCode participant JVM participant OS
Developer->>SourceCode: Écrit HelloWorld.java
SourceCode->>Compiler: Entrée fichier .java
Compiler->>ByteCode: Sortie fichier .class (Bytecode)
ByteCode->>JVM: Charge et vérifie le bytecode
JVM->>OS: Exécute les instructions
OS->>Developer: Affiche "Hello, World!"
Qu'est-ce que le Bytecode ?
Le bytecode est un ensemble d'instructions qui ressemble au code machine mais qui est conçu pour être compris par la JVM, et non par un processeur matériel spécifique. C'est la clé de la capacité de Java "Write once, run anywhere".
Compilateur JIT
Les JVM modernes utilisent un Just-In-Time (JIT) Compiler. Le compilateur JIT surveille le programme en cours d'exécution et identifie les parties de bytecode fréquemment utilisées. Il compile ensuite ces points chauds en code machine natif pendant l'exécution. Cela accélère considérablement l'exécution, rendant Java presque aussi rapide que les langages compilés nativement.