Concernant les types de référence, l'attribution de valeur n'est qu'une copie de la mémoire du tas, c'est-à-dire que plusieurs variables pointent vers la même mémoire du tas. Mais sous Chrome, lors de mes tests, j'ai rencontré une telle situation, j'espère que les experts pourront me donner une réponse
.Sur la photo ci-dessous
J'ai créé une variable a et lui ai assigné un objet vide
Attribuer la variable a à la variable b
aAjouter un nom d'attribut
aDéconnexion
Selon l'utilisation des types référence, lorsque a est annulé, l'objet ne devrait plus exister, mais b a toujours cette référence. Ma question est la suivante : le résultat généré par b ne devrait-il pas être nul, n'est-ce pas ?
Par exemple :
a = {} ; Si le nom de {} en mémoire est 0x2334c ; l'exécution réelle est b = 0x2334c ; l'exécution consiste à marquer a et à attendre la destruction ;
Mais b fait toujours référence à 0x2334c, donc 0x2334c n'a pas été détruit
Sauf si b et a = null ;
a et b pointent tous les deux vers la même adresse c. Définir a=null ne fait plus pointer a vers c. Cependant, b pointe toujours vers c.