jvm a trois chargeurs de classes, un chargeur défini par l'utilisateur, de haut en bas :
bootstrap classLoader Ce chargeur de classe charge la bibliothèque de classes principale jdk lorsque la machine virtuelle Java démarre Charger en mémoire
extension classLoader chargeur de classe d'extension, qui est une bibliothèque de classes qui charge certains fichiers jar de jre
system classLoader chargeur de classe système, qui charge le chemin de classe Spécifiez la bibliothèque de classes dans la mémoire
custom classLoader Chargeur de classe défini par l'utilisateur, le chargeur de classe est sous la responsabilité du programmeur lui-même. Pendant l'exécution du programme, les fichiers de classe sont chargés dynamiquement via la sous-classe de java.lang.classLoader
Mécanisme de chargement :
Le mécanisme de chargement de classe Java est appelé mécanisme de délégation parent : lorsqu'il y a une demande au chargeur pour une classe, il demandera d'abord de bas en haut si la classe a été chargée dans la mémoire. is Loading renverra directement la classe.Sinon, déléguez d'abord le chargeur de classe parent pour charger la classe. Si le chargeur actuel a toujours une classe parent, déléguez ensuite au niveau supérieur suivant jusqu'au niveau supérieur. ne peut pas charger la classe, elle reviendra au niveau suivant jusqu'à ce qu'elle soit chargée. Si elle ne peut pas être chargée, une exception de classe non trouvée (ClassNotFoundException) sera renvoyée. Par exemple : lorsque le chargeur défini par l'utilisateur est requis pour charger la classe java.lang.String, le classLoader d'amorçage est en fait utilisé pour la charger, car java.lang.String est la classe de bibliothèque principale de jdk, lorsque celle-ci est définie par l'utilisateur. Loader est utilisé, il sera d'abord chargé par le délégué vers le chargeur de classe parent.
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!