Répertoire d'articles
1. L'instanciation de l'objet
1.
-
Nouveau
- La méthode la plus courante
Variation 1: Méthode statique de Xxx
Variation 2: Méthode statique de XxBuilder / XxoxFactory
- La méthode la plus courante
-
NewInstance () de la classe: la méthode de réflexion ne peut appeler que le constructeur du paramètre null et l'autorisation doit être publique
-
NewInstance du constructeur (Xxx): de manière réflexive, vous pouvez appeler le constructeur avec des paramètres vides et paramétrés, et aucune autorisation n'est requise
-
Utilisez clone (): n'appelez aucun constructeur, la classe actuelle doit implémenter l'interface clonable et implémenter clone ()
-
Utiliser la désérialisation: obtenir un flux binaire d'un objet à partir d'un fichier et du réseau
-
Objenesis de la bibliothèque tierce
-
Déterminer si la classe correspondant à l'objet est chargée, liée, initialisée
-
Allouer de la mémoire à l'objet
-
Si la mémoire est régulière et qu'un pointeur entre en collision
-
Si la mémoire est irrégulière:
- La machine virtuelle doit maintenir une liste
- Attribution gratuite de la liste
-
-
Gérer les problèmes de sécurité de la concurrence
- Utilisez CAS avec échec de nouvelle tentative pour garantir l'atomicité de la mise à jour
- Chaque thread se voit attribuer un TLAB à l'avance
-
Initialisez l'espace alloué - toutes les propriétés sont définies sur des valeurs par défaut pour garantir que les champs d'instance d'objet peuvent être utilisés directement lorsqu'ils ne sont pas affectés.
Définissez l'en-tête d'objet de l'objet -
Exécutez la méthode init pour initialiser
2. Disposition de la mémoire d'objets
1. En-tête: métadonnées d'exécution Pointeurs de type Markword et KlassInstance
2. Données d'instance InstanceData
3. Alignement et remplissage de remplissage
public class CustomerTest {
public static void main(String[] args) {
Customer cust = new Customer();
}
}
3. Accéder à l'emplacement de l'objet
Comment la JVM accède-t-elle à ses instances d'objet internes via les références d'objet dans le cadre de pile? -> Positionnement, accessible par référence sur la pile
1. Accès à la poignée
2. Pointeur direct (adopté par HotSpot)