public static void main(String[]args){
int a[]={2,3,5};
//在这里释放a数组,下面运行输出的时候报错
System.out.println(a[2]);
}
大虾门快进来帮下忙!如何释放数组等一些引用类型的数据?
9 个解决方案
#1
难道没人会吗?
#2
代码贴全,错误都贴出来。这样才好分析
#3
代码呢?
#4
int a[]{*,*,*},{*,*,*}
a[2]输出第二组星号...
a[2]输出第二组星号...
#5
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的垃圾回收器说了算
可以通过编程的手段来影响,让对象符合垃圾回收条件。
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的垃圾回收器说了算
#6
你的想法是达不到的,
除非你把引用a置为null,a=null
但在这种情况下{2,3,5}这个数组对象在内存里还是存活的
除非你把引用a置为null,a=null
但在这种情况下{2,3,5}这个数组对象在内存里还是存活的
#7
同意6楼的 想要最满意释放资源的方法就是赋值为null了
#8
java真的就实现不了 c++里面的delete 手动释放资源的功能?? 求解!
#9
Java 中不需要你手动释放内存,你自己也没办法做到,在 Java 中你不用去关心这些。
JVM 有很好的垃圾回收机制,垃圾回收作为一个后台线程,在那里默默地监控着,如果 JVM 所使用的内存达到一定的阀值时,垃圾回收器就会自动开始运行清理一些垃圾对象。
JVM 有很好的垃圾回收机制,垃圾回收作为一个后台线程,在那里默默地监控着,如果 JVM 所使用的内存达到一定的阀值时,垃圾回收器就会自动开始运行清理一些垃圾对象。
#1
难道没人会吗?
#2
代码贴全,错误都贴出来。这样才好分析
#3
代码呢?
#4
int a[]{*,*,*},{*,*,*}
a[2]输出第二组星号...
a[2]输出第二组星号...
#5
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的垃圾回收器说了算
可以通过编程的手段来影响,让对象符合垃圾回收条件。
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的垃圾回收器说了算
#6
你的想法是达不到的,
除非你把引用a置为null,a=null
但在这种情况下{2,3,5}这个数组对象在内存里还是存活的
除非你把引用a置为null,a=null
但在这种情况下{2,3,5}这个数组对象在内存里还是存活的
#7
同意6楼的 想要最满意释放资源的方法就是赋值为null了
#8
java真的就实现不了 c++里面的delete 手动释放资源的功能?? 求解!
#9
Java 中不需要你手动释放内存,你自己也没办法做到,在 Java 中你不用去关心这些。
JVM 有很好的垃圾回收机制,垃圾回收作为一个后台线程,在那里默默地监控着,如果 JVM 所使用的内存达到一定的阀值时,垃圾回收器就会自动开始运行清理一些垃圾对象。
JVM 有很好的垃圾回收机制,垃圾回收作为一个后台线程,在那里默默地监控着,如果 JVM 所使用的内存达到一定的阀值时,垃圾回收器就会自动开始运行清理一些垃圾对象。