java数组中如何对内存进行回收?

美女程序员鼓励师

在我们每次都用new来创建新对象时,都会有一定的内存进行占据。我们知道空间的使用时有限的,这时候就要不断的对原有的内存进行释放。关于数组中的内存问题,很多人还是不够了解的,本篇我们将就java数组中对内存回收进行讨论,下面就看看具体回收是如何操作的吧。

1、内存分析

数组引用变量只是一个引用,这个引用变量可以指向任何有效的内存,只有当该引用指向有效内存后,才可通过该数组变量来访问数组元素。

与所有引用变量相同的是,引用变量是访问真实对象的根本方式。也就是说,如果希望在程序中访问数组对象本身,则只能通过这个数组的引用变量来访问它。

实际的数组对象被存储在堆(heap)内存中;如果引用该数组对象的数组引用变量是一个局部变量, 那么它被存储在栈(stack)内存中。

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数组中对内存进行回收的操作,我们可以对基础的内存分配原理进行一个理解,然后在实例中体会内存回收的方法。更多Java学习指路:java数组

以上是 java数组中如何对内存进行回收? 的全部内容, 来源链接: utcz.com/z/543328.html

回到顶部