analyse de la classe Namespace de profondeur du chargeur et étude de cas
relation Namespace différents chargeur de classes:
Les classes dans le même espace de noms sont mutuellement visibles.
namespace namespace enfant chargeur contient tous le chargeur de classe parent. Ainsi, par le sous-chargé par les charges de chargeur de classe, vous pouvez voir la classe parente. Par exemple, le chargeur de classe système pour charger une classe peut voir le chargeur de classe racine pour charger une classe.
Chargé par le chargeur de classe ne peut pas voir les charges de chargeur de classe parent-enfant.
S'il n'y a pas de relation parent-enfant direct ou indirect entre les deux chargeurs, ils sont chaque classe chargée ne soit pas visible à l'autre.
Tout d'abord, imprimer le résultat est: System.out.println (clazz1 == clazz2), à la charge parce que loader1, loader2 à la charge myPerson lorsque les parents sont commandés par le mécanisme pour demander son chargeur de classe parent pour la première fois loader1 demande chargeur de classe parent (le chargeur de classes de système) pour terminer le chargement; loader2 lorsque la deuxième charge, la demande de chargeur de classe parent (classe de système de chargeur) pour charger trouvés myPerson a été chargé, il ne sera plus rechargé , le résultat peut être chargé directement en arrière.
La raison de la fausse: ** S'il n'y a pas directe ou indirecte relation parent-enfant entre deux chargeurs, ils sont chaque classe chargée ne soit pas visible à l'autre. ** et ainsi loader2 loader1 sont deux chargeurs de classes différentes (des chargeurs de classe ont différents espaces de noms, cependant, les deux espaces de noms différents ont la même myPerson de classe).