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

java数组中如何对内存进行回收?,第1张

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数组

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3017360.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-28
下一篇 2022-09-28

发表评论

登录后才能评论

评论列表(0条)

保存