Maison > Java > javaDidacticiel > Explication détaillée du mécanisme de chargement de classe Java ClassLoder (image et texte)

Explication détaillée du mécanisme de chargement de classe Java ClassLoder (image et texte)

黄舟
Libérer: 2017-03-15 13:11:55
original
2144 Les gens l'ont consulté

Après l'avoir lu sur papier, je me rends compte que je dois le faire en détail --Lu You Demandez au canal s'il est clair, afin qu'il y ait une source d'eau vive - Zhu Xi


La vie entière d'une classe, depuis le moment où elle est chargée en mémoire jusqu'à l'heure à laquelle il est déchargé de la mémoire Le cycle comprend : le chargement, la vérification (Verification), la préparation (Preparetation), la résolution (Resolution),

l'initialisation (Initialisation), et utiliser (Using) , sept étapes de déchargement (Téléchargement). Où la préparation et l’analyse de la validation sont appelées liaison.





1. L'architecture chargée

1), Bootstrap Classloader démarre le chargeur de classe, qui est principalement responsable du noyau apiOu le package jar spécifié par l'option -Xbootstrap est inclus dans le travail. 2), chargeur de classe d'extension Extension ClassLoader, principalement responsable du package jar sous java_home/lib/ext

3), chargeur de classe système App CLassLoader, principalement responsable de Java -classpath/ Le chargement des classes et des packages jar dans le répertoire ;

4), chargeur de classe défini par l'utilisateur UserCustom ClassLoader, pendant l'exécution du programme, via l'enfant de Java.

lang

.Classloader Class classe de chargement dynamique

2. Caractéristiques du chargement de classe

1), chaque ClassLoader conservera son propre

espace de noms

, deux noms de classe identiques ne peuvent pas apparaître dans le même espace de noms

2), Afin d'obtenir le mécanisme de sécurité du chargeur de classes de premier niveau java

security

sandboxmodelclasses de premier niveau, Java adopte par défaut la structure « chaîne de chargement déléguée parentale ». 3. Il existe trois façons de charger les classes :

1). Lorsque l'application est démarrée depuis la ligne de commande, elle est initialisée. et chargé par la JVM.

2), chargement dynamique via la classe.

for

Name() méthode. 3), chargement dynamique via la méthode ClassLoader().loadClass().

Ces trois méthodes de chargement ont un impact sur l'exécution des blocs de code

statique

.

L'exemple suivant :

1. Architecture de chargement de classe ClassLoader

1) Bootstrap Classloader démarre le chargeur de classe, qui est principalement responsable du chargement de l'API principale sous java_home/lib ou du package jar spécifié par l'option -Xbootstrap.

2), chargeur de classe d'extension Extension ClassLoader, principalement responsable du package jar sous java_home/lib/ext

3), chargeur de classe système App CLassLoader, principalement responsable de Java -classpath/ Loading des classes et des packages jar dans le répertoire ;

4), le chargeur de classes défini par l'utilisateur UserCustom ClassLoader, pendant l'exécution du programme, charge dynamiquement les classes via les sous-classes de Java.lang.Classloader

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal