Maison  >  Article  >  Java  >  Comment recycler la mémoire dans un tableau Java

Comment recycler la mémoire dans un tableau Java

WBOY
WBOYavant
2023-05-02 18:46:07797parcourir

1. Analyse de la mémoire

La variable de référence du tableau est juste une référence Cette variable de référence peut pointer vers n'importe quelle mémoire valide uniquement lorsque la référence pointe vers la validité. mémoire, les éléments du tableau sont accessibles via cette variable du tableau.

Comme toutes les variables de référence, les variables de référence sont le moyen fondamental d'accéder à des objets réels. Autrement dit, si vous souhaitez accéder à l'objet tableau lui-même dans le programme, vous ne pouvez y accéder que via la variable de référence de ce tableau.

L'objet tableau réel est stocké dans la mémoire tas ; si la variable de référence du tableau faisant référence à l'objet tableau est une variable locale, alors elle est stockée dans la mémoire de la pile.

2, Exemple

Si le tableau dans la mémoire tas n'a plus de variables de référence pointant vers lui-même, alors Ceci le tableau deviendra un déchet, et la mémoire occupée sera récupérée par le mécanisme de récupération de place du système. Par conséquent, pour utiliser le mécanisme de récupération de place pour récupérer l'espace mémoire occupé par un tableau, vous pouvez attribuer la variable de tableau à null, coupant ainsi la relation de référence entre la variable de référence du tableau et le tableau réel. . Rendant ainsi le tableau réellement inutile.

Sous le principe de la compatibilité mutuelle, une variable de tableau est autorisée à pointer vers un autre tableau réel. Cette opération provoquera l'illusion que la longueur du tableau est variable. Ci-dessous :

public class ArrayInRam {
   
   
   
 
public static void main(String[] args) {
   
   
   
//静态初始化a
int []a= {
   
   
   5,7,20};
//动态初始化b
int []b=new int[4];
//输出b的长度
System.out.println(b.length);
//循环遍历输出a
for(int aa:a) {
   
   
   
System.out.print(aa+"\t");
}
//b引用a
b=a;
//输出b的长度
System.out.println("\n"+b.length);
 
}
 
}

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer