1. 메모리 분석
배열 참조 변수는 참조일 뿐입니다. 이 참조 변수는 참조가 유효한 메모리를 가리키는 경우에만 배열 변수를 통해 액세스할 수 있습니다.
모든 참조 변수와 마찬가지로 참조 변수는 실제 객체에 액세스하는 기본적인 방법입니다. 즉, 프로그램에서 배열 객체 자체에 접근하려면 이 배열의 참조 변수를 통해서만 접근할 수 있습니다.
실제 배열 개체는 힙 메모리에 저장되며, 배열 개체를 참조하는 배열 참조 변수가 로컬 변수인 경우 스택 메모리에 저장됩니다.
2. 예
힙 메모리의 배열에 더 이상 자신을 가리키는 참조 변수가 없으면 이 배열은 가비지가 되고 점유된 메모리는 시스템의 가비지 수집 메커니즘에 의해 회수됩니다. 따라서 가비지 수집 메커니즘을 사용하여 배열이 차지한 메모리 공간을 회수하려면 이 배열 변수를 null에 할당하면 배열 참조 변수와 실제 배열 간의 참조 관계가 끊어져 실제 배열을 만들 수 있습니다. 쓰레기가 되다 .
상호 호환성을 전제로 배열 변수가 다른 실제 배열을 가리키는 것이 허용됩니다. 이 작업은 배열의 길이가 가변적인 것처럼 보이게 합니다. 아래:
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); } }
위 내용은 Java 배열에서 메모리를 재활용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!