Chargeur de classe de contexte de thread par rapport au chargeur de classe normal
Java fournit deux mécanismes distincts pour le chargement de classe : le chargeur de classe de contexte du thread et le chargeur de classe normal. chargeur de classe.
Classe contextuelle de Thread Loader
Le chargeur de classe contextuelle est un chargeur de classe associé à chaque thread. Il est utilisé lorsqu'un thread doit charger une classe de manière dynamique, par exemple lors de l'utilisation de la réflexion ou de la désérialisation. Par défaut, le chargeur de classe contextuelle est défini sur le chargeur de classe parent du chargeur de classe qui a chargé la classe principale du thread.
Chargeur de classe normal
Le chargeur de classe normal est le chargeur de classe utilisé pour charger les classes de la classe actuelle. Il est récupéré à l'aide de la méthode getClass().getClassLoader(). En règle générale, le chargeur de classe normal est le même que le chargeur de classe contextuel, ce qui signifie qu'il s'agit du chargeur de classe parent du chargeur de classe qui a chargé la classe principale.
Quel chargeur de classe est utilisé ?
Lorsqu'un thread charge une classe dynamiquement, il utilise généralement le chargeur de classe contextuelle. Cependant, si le chargeur de classe contextuelle du thread est différent du chargeur de classe normal, celui qui est utilisé dépend du contexte.
Seulement dans des circonstances spécifiques, le chargeur de classe normal peut être utilisé à la place du chargeur de classe contextuelle. Par exemple, si le chargeur de classe contextuelle est nul, le chargeur de classe normal est utilisé.
Recommandation
Généralement, il est recommandé d'utiliser le chargeur de classe normal (c'est-à-dire , getClass().getClassLoader()) lors du chargement explicite des classes, même si le chargeur de classe contextuelle est différent. Le chargement de classe explicite doit toujours utiliser le chargeur de classe de la classe effectuant le chargement.
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!