Maison  >  Article  >  Java  >  Explication détaillée du mécanisme de chargement de classe classLoader dans le développement JAVA

Explication détaillée du mécanisme de chargement de classe classLoader dans le développement JAVA

无忌哥哥
无忌哥哥original
2018-07-18 11:25:151842parcourir

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!

Déclaration:
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