Machine virtuelle Java - Chargeur de classe

La JVM gère le processus de chargement, de liaison et d'initialisation des classes et des interfaces de manière dynamique. Pendant le processus de chargement, leJVM finds the binary representation of a class and creates it.

Pendant le processus de liaison, le loaded classes are combined into the run-time state of the JVM so that they can be executed during the initialization phase. La JVM utilise essentiellement la table de symboles stockée dans le pool de constantes d'exécution pour le processus de liaison. L'initialisation consiste en faitexecuting the linked classes.

Types de chargeurs

le BootStrapLe chargeur de classe est au sommet de la hiérarchie du chargeur de classe. Il charge les classes JDK standard dans le répertoire lib du JRE .

le Extension class loader se trouve au milieu de la hiérarchie du chargeur de classe et est l'enfant immédiat du chargeur de classe bootstrap et charge les classes dans le répertoire lib \ ext du JRE.

le ApplicationLe chargeur de classe se trouve au bas de la hiérarchie du chargeur de classe et est l'enfant immédiat du chargeur de classe d'application. Il charge les fichiers JAR et les classes spécifiés par leCLASSPATH ENV variable.

Mise en relation

Le processus de liaison comprend les trois étapes suivantes -

Verification- Ceci est fait par le vérificateur Bytecode pour s'assurer que les fichiers .class générés (le Bytecode) sont valides. Sinon, une erreur est générée et le processus de liaison s'arrête.

Preparation - La mémoire est allouée à toutes les variables statiques d'une classe et elles sont initialisées avec les valeurs par défaut.

Resolution- Toutes les références mémoire symboliques sont remplacées par les références d'origine. Pour ce faire, la table de symboles dans la mémoire des constantes d'exécution de la zone de méthode de la classe est utilisée.

Initialisation

Il s'agit de la phase finale du processus de chargement de classe. Les variables statiques reçoivent des valeurs d'origine et des blocs statiques sont exécutés.