• 技术文章 >java >java数组

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

    小妮浅浅小妮浅浅2021-02-21 12:09:21原创5041

    在我们每次都用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数组
    品易云
    上一篇:java一维数组的深拷贝方式 下一篇:java如何使用流对数组排序

    相关文章推荐

    • java中Scanner获取字符串的方法• java一维数组赋值的方法• java MyBatis中jar的下载安装步骤• mybatis在java中的分页查询• java中创建对象的步骤有哪些?• java中内存模型是什么?有什么用?• java数组和容器的关系探究

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网