L'initialisation ici peut être comprise comme la dernière étape du chargement de la classe (appel de <clinit>). Si deux ClassLoads différents sont chargés, alors <clinit> sera exécuté deux fois et l'objet Class chargé est dans la méthode. zone. (Génération permanente), et correspondra à deux Class objets
.
Si le code de la méthode findClass est surchargé, le résultat final devrait être deux true. Le code ci-dessus, car le fichier class est finalement sous classpath, est remis à AppLoader pour qu'il soit chargé. Pour afficher l'effet, vous devez déplacer le fichier class vers un emplacement autre que classpath. L'affiche originale surcharge la méthode loadClass
Pour faire simple :
Pour plus d'informations, recherchez simplement dans le moteur de recherche le mot-clé « Modèle de délégation parentale ».
Hors sujet, je trouve que ce code est très soigné et a l'air confortable
L'initialisation ici peut être comprise comme la dernière étape du chargement de la classe (appel de
.<clinit>
). Si deux ClassLoads différents sont chargés, alors<clinit>
sera exécuté deux fois et l'objetClass
chargé est dans la méthode. zone. (Génération permanente), et correspondra à deuxClass
objetsSi le code de la méthode
.findClass
est surchargé, le résultat final devrait être deuxtrue
. Le code ci-dessus, car le fichierclass
est finalement sousclasspath
, est remis à AppLoader pour qu'il soit chargé. Pour afficher l'effet, vous devez déplacer le fichierclass
vers un emplacement autre queclasspath
. L'affiche originale surcharge la méthodeloadClass