1.loadClass, Lorsqu'une demande de chargement de classe arrive, recherchez d'abord l'objet de classe dans le cache.
S'il y en a un, il sera restitué directement. Dans le cas contraire, il sera remis au chargeur parent de ce type de chargement. S'il n'y a aucun parent à charger, il est chargé par le chargeur de démarrage de niveau supérieur. S'il n'est toujours pas trouvé, utilisez findClass() pour le charger ;
2. FindClass
Chargez le bytecode de la classe par nom ou position, puis utilisez DefineClass. Il est généralement implémenté par une sous-classe. personnaliser le ClassLoader, vous devez le réécrire la méthode.
3. La méthode DefineClass
defineClass() consiste à analyser le flux d'octets dans un objet Class qui peut être reconnu par la JVM (la logique de cette méthode a été implémentée dans ClassLoader). objets via des fichiers de classe, les objets Class peuvent également être instanciés via d'autres méthodes, par exemple, en recevant une classe de bytecode via le réseau, puis en la convertissant en un flux d'octets pour créer l'objet Class correspondant. La méthode DefinClass() est généralement utilisée ensemble. avec la méthode findClass(). Habituellement, lors de la personnalisation d'un chargeur de classe, vous remplacerez directement la méthode findClass() du Classloader et écrirez les règles de chargement. Après avoir obtenu le bytecode de la classe à charger, vous le convertirez en flux, et puis appelez la méthode definitionClass() pour générer l'objet Class de la classe. En termes simples, il s'agit de convertir le fichier classes en un objet Class.
4. solveClassAprès la création à l'aide de l'objet Class, il peut également être résolu en même temps.
Nous avons déjà dit que la phase de liaison vérifie principalement le bytecode, alloue de la mémoire, définit les variables de classe et convertit les références de symboles dans le fichier de bytecode en références directes.
Les types de données de base de Java sont divisés en :
1 Type entier, utilisé pour représenter le type de données des entiers.
2. Type à virgule flottante, un type de données utilisé pour représenter les décimales.
3. Type de caractère Le mot-clé du type de caractère est "char".
4. Le type booléen est le type de données de base qui représente les valeurs logiques.
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!