language est un géant de l'industrie informatique depuis très longtemps. Il a des concepts de premier ordre qui le rendent meilleur que le reste du langage de programmation. L'un de ces concepts est la machine virtuelle Java.Dans cet article, nous découvrirons les différents aspects de machine virtuelle en détail. Voici les sujets abordés dans ce blog:
- Qu'est-ce que la machine virtuelle Java?
- Pourquoi avons-nous besoin d'une machine virtuelle Java?
- Architecture de machine virtuelle Java
- Processus d'exécution
- Différence entre JDK, JRE et JVM
Qu'est-ce que la machine virtuelle Java?
La machine virtuelle Java est une machine abstraite indépendante de la plate-forme qui fournit un environnement d'exécution dans lequel le code d'octet Java est exécuté.
Il fait partie de l'environnement d'exécution Java qui convertit le bytecode Java en langage lisible par machine. Le principal que nous avons dans un programme Java est en fait appelé par la machine virtuelle Java.
Pourquoi avons-nous besoin d'une machine virtuelle Java?
Nous avons besoin de la machine virtuelle Java pour les tâches qu'elle effectue, qui sont extrêmement nécessaires pour tout développement impliquant Java. Voici quelques tâches effectuées par la machine virtuelle Java.
- Charge le code
- Vérification du code
- Exécution du code
- Il fournit l'environnement d'exécution pour les applications
- Zone mémoire
- Ensemble de registre
- Fournit un tas de garbage collection
- Signalement des erreurs fatales
- Fournit un classe format de fichier
Avec toutes ces opérations, la machine virtuelle Java fait partie intégrante du développement Java. Essayons de comprendre son fonctionnement à l’aide de l’architecture de la machine virtuelle Java.
Architecture de machine virtuelle Java
L'architecture de la machine virtuelle Java est assez simple, elle possède une zone mémoire, un chargeur de classe et un moteur d'exécution parmi d'autres composants. discutons chacun d'eux en détail.
ClassLoader
C'est un sous-système utilisé pour charger les fichiers de classe. Chaque fois que nous exécutons un programme en java, il est d'abord chargé par le ClassLoader. la fonction principale comprend l'initialisation, la liaison et le chargement. Voici les chargeurs de classe intégrés à Java.
Amorcer ClassLoader - C'est la super classe d'Extension ClassLoader qui charge le fichier rt.jar.
Extension ClassLoader - Il charge les fichiers jar situés dans le répertoire.
hadoop admin vs développeur hadoop
Système / Application ClassLoader - Il charge les fichiers de classe à partir du chemin de classe.
Opération de chargement - Tout d'abord, le classLoader charge les fichiers .class et génère les données correspondantes au format binaire qui sont enregistrées dans la zone de méthode.
Opération de liaison - Après le chargement, il prépare, vérifie et fait la résolution. JVM alloue la mémoire pour les variables de classe et initialise la mémoire aux valeurs par défaut. Il garantit l'exactitude du fichier .class et lorsque la vérification échoue, nous obtenons l'erreur d'exception d'exécution.
Initialisation - Toutes les variables statiques sont affectées avec leurs valeurs définies dans le bloc de code dans cette phase.
Mémoire JVM
Zone de méthode - Il stocke les structures de chaque classe comme le code, les données de champ, le pool de constantes d'exécution, les données de méthode, etc.
Tas - Les objets sont alloués au moment de l'exécution dans le tas.
Piles de langage JVM - Il stocke les variables locales et les résultats. Il joue un rôle important dans l'appel et le renvoi des résultats. Chaque fois qu'une méthode est appelée, une trame est créée et détruite dès que l'appel se termine ou se termine.
Registres PC - Il a l'adresse ou l'emplacement de l'instruction JVM en cours d'exécution.
Piles de méthodes natives - Toutes les méthodes natives utilisées dans les applications sont présentes dans les piles de méthodes natives.
Moteur d'exécution - Un moteur d'exécution contient un processeur virtuel, un interprète et un JIT compilateur.
Méthode native Interface - C'est un qui procure.
Maintenant que nous avons compris l'architecture de la JVM, examinons le processus d'exécution et la compilation du code.
Processus d'exécution
Les étapes suivantes ont lieu lors de l'exécution et de la compilation d'un code Java.
- La méthode principale est stockée dans un seul fichier et les autres méthodes sont stockées dans différents fichiers.
- Après la compilation, il fournira les fichiers .class correspondants qui auront le code d'octet sans aucun lien, contrairement à C.
- Pendant l'exécution, les fichiers de classe sont vérifiés pour toute violation à l'aide du chargeur de classe.
- Après cela, le bytecode est converti en code machine natif correspondant. C'est aussi la raison pour laquelle Java est comparativement plus lent.
Maintenant que nous savons comment fonctionne l'exécution, examinons la différence entre JDK, JRE et JVM.
Différence entre JDK, JRE et JVM
Voici quelques différences importantes entre JDK , JVM et JRE.
- JDK signifie kit de développement Java, et JRE signifie environnement d'exécution Java.
- JDK est destiné au développement tandis que JRE est destiné à l'environnement d'exécution.
- JVM est une partie essentielle de JDK et JRE pour exécuter n'importe quel programme Java.
- JVM fait partie intégrante de la programmation Java et assure l'indépendance de la plate-forme.
Cela nous amène à la fin de cet article où nous avons appris en détail la machine virtuelle Java. J'espère que vous êtes clair avec tout ce qui a été partagé avec vous dans ce tutoriel.
php comment imprimer un tableau
Si vous avez trouvé cet article sur «Java Virtual Machine» pertinent, consultez le site Edureka , une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier.
Nous sommes là pour vous aider à chaque étape de votre voyage et proposer un programme conçu pour les étudiants et les professionnels qui souhaitent devenir développeur Java. Le cours est conçu pour vous donner une longueur d'avance dans la programmation Java et vous former aux concepts Java de base et avancés ainsi qu'à divers frameworks Java tels que Hibernate & Spring.
Si vous rencontrez des questions, n'hésitez pas à poser toutes vos questions dans la section commentaires de «Java Virtual Machine» et notre équipe se fera un plaisir de vous répondre.