public static void main(String[]args){
int a[]={2,3,5};
                   
                 //在这里释放a数组,下面运行输出的时候报错
       System.out.println(a[2]);
}
大虾门快进来帮下忙!如何释放数组等一些引用类型的数据?

解决方案 »

  1.   

    int a[]{*,*,*},{*,*,*}
    a[2]输出第二组星号...
      

  2.   

    java采用了垃圾回收机制,程序员无法操作内存释放
    可以通过编程的手段来影响,让对象符合垃圾回收条件。
      1、将无用对象赋值为null.
      2、重新为引用变量赋值。比如:
      Person p = new Person("aaa");
      p = new Person("bbb");
      这样,new Person("aaa")这个对象就是垃圾了——符合垃圾回收条件了。
      3、让相互联系的对象称为“岛”对象
      Person p1 = new Person("aaa");
      Person p2 = new Person("bbb");
      Person p3 = new Person("ccc");
      p1=p2; p2=p3; p3=p1;
      p1=null; p2=null; p3=null;
      在没有对p1、p2、p3置null之前,它们之间是一种三角恋关系。分别置null,三角恋关系依然存在,但是三个变量不在使用它们了。三个Person对象就组成了一个孤岛,最后死在堆上——被垃圾回收掉
      4、强制的垃圾回收System.gc()
      实际上这里的强制,是程序员的建议,什么时候执行还是JVM的垃圾回收器说了算
      

  3.   

    你的想法是达不到的,
    除非你把引用a置为null,a=null
    但在这种情况下{2,3,5}这个数组对象在内存里还是存活的
      

  4.   

    同意6楼的 想要最满意释放资源的方法就是赋值为null了  
      

  5.   

    java真的就实现不了 c++里面的delete 手动释放资源的功能??  求解!
      

  6.   

    Java 中不需要你手动释放内存,你自己也没办法做到,在 Java 中你不用去关心这些。JVM 有很好的垃圾回收机制,垃圾回收作为一个后台线程,在那里默默地监控着,如果 JVM 所使用的内存达到一定的阀值时,垃圾回收器就会自动开始运行清理一些垃圾对象。