Maison >Java >javaDidacticiel >Explication détaillée d'exemples de mécanisme de chargement de classe en Java

Explication détaillée d'exemples de mécanisme de chargement de classe en Java

黄舟
黄舟original
2017-09-16 10:51:051495parcourir

En Java, les fichiers de classe sont chargés via la JVM. Les méthodes de chargement de classe sont divisées en chargement implicite et chargement explicite. Parmi eux, lorsqu'un objet est créé via new lors du chargement implicite, le fichier de classe correspondant est implicitement chargé dans la JVM via le chargeur de classe. Le chargement explicite charge explicitement les fichiers de classe requis dans la JVM via class.forName().

Dans le langage Java, les classes sont chargées dynamiquement. Au lieu de charger tous les fichiers de classe dans la JVM en même temps, les classes de base sont d'abord chargées dans la JVM, et les autres classes d'utilisateurs sont chargées dans la JVM si nécessaire. Chargé dans JVM.

En langage Java, les classes peuvent être divisées en trois catégories : les classes système, les classes d'extension et les classes personnalisées. Différents chargeurs de classes sont fournis pour ces trois types de fichiers

Bootstrap Loader -- Chargement responsable. classes système

ExtClass Loader - Responsable du chargement des classes d'extension

AppClassLoader - Responsable du chargement des classes d'application

Le processus de chargement des classes comprend principalement les étapes suivantes (Pour plus de détails, veuillez vous référer à « Compréhension approfondie de la machine virtuelle Java »)

1. Chargement : recherchez le fichier de classe correspondant en fonction du chemin de recherche, puis importez-le.

2. Lien : Le lien peut être divisé en 3 étapes

(1) Vérifier : Vérifier l'exactitude du fichier de classe à charger

(2) Préparation : Placez la classe dans Allouer de l'espace mémoire pour les variables statiques

(3) Analyse : analyser les références de symboles en références directes

3. Initialisation : effectuer un travail d'initialisation sur les variables statiques et les blocs de code statiques.

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