public static void main(String[]args){
int a[]={2,3,5};
//在这里释放a数组,下面运行输出的时候报错
System.out.println(a[2]);
}
大虾门快进来帮下忙!如何释放数组等一些引用类型的数据?
解决方案 »
- 小白:有没有很好的源码站?
- 用js 如何得到在服务器端输出到页面的html中某個元素
- struts2 java.lang.IllegalStateException: No modifications are allowed to a locked ParameterMap
- Hibernate小鸟 提问 关于开发中Hibernate的应用
- 谁有电子图书馆方面的需求分析或相关需求.谢谢
- 远程调用ejb3.0的问题
- spring quartz 获取springbean问题(100分求助)
- 打包好的ejb.jar怎么在jboss或weblogic中部署啊?
- 在servlet中通过socket读取一幅图片的字节流,怎么才能把图片显示在网页上??
- 可不可以用session 来保存Context,Ejb的信息呢?
- crud的问题
- jdbc问题
a[2]输出第二组星号...
可以通过编程的手段来影响,让对象符合垃圾回收条件。
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的垃圾回收器说了算
除非你把引用a置为null,a=null
但在这种情况下{2,3,5}这个数组对象在内存里还是存活的