怎样释放对象所占用的资源? 创建了一个对象,当不再使用时如何释放其所占用的资源(主要是内存)? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当然你可以用System.gc();但是我们显式的去调用,他还是在不确定的时候回收垃圾内存! 我们不能控制何时进行垃圾回收,jvm来决定 Object obj = new Object();.....obj = null;//清空释放对象 个人认为gc不必要 因为也是交给JVM的垃圾回收机制 obj = null;//清空释放对象 -------------------------没有必要吧 JVM会知道obj后面有没有被使用的 没有被使用就回收了 首先,对像要成为垃圾,其次,可以建议JVM回收(SYSTEM.GC()) 但是,类似JAVA的拥有垃圾回收机制的语言,由于虚拟机实现的水平不同,可以帮虚拟机做一些工作,比如,对象不再应用的时候,显示的置空,这样,你就帮了虚拟机的忙了. 垃圾回收开销较大,如果过多的将对象置null,对性能影响较明显。 一般来讲不需要特别的调用,GC 自然会回收。如果 GC 无法进行回收,那表明你的代码有问题。 System.gc() 是通知系统可以回收了 但什么时候回收就没准了 没有办法来第一时间回收 真的吗?-------------------- 回复人:TianYaRider(天涯骑士) ( 一级(初级)) 信誉:100垃圾回收开销较大,如果过多的将对象置null,对性能影响较明显。 java的一个优势就是gc,如果不用是不是有点可惜啊。 set it to be null ,then System.gc(); >>垃圾回收开销较大,如果过多的将对象置null,对性能影响较明显。FT,你真幽默…… JVM只是在内存面临不足的时候才会起用垃圾回收器,用了gc()也不能立即进行回收,所以建议思考是否需要立即回收,如真的需要,可以使用本地化方法,比如使用VC++的回收机制,这样解决问题,但是使得程序不好移植 JVM会在一个适当的时候回收无用的对象空间,不用LZ费心 您有两种可以使用的方法去清除内存中的没有释放的内存。方法1是使用系统的方法System.gc(); 这种方法不推荐使用。因为有的时候你的程序可能等待用户输入值所以有可能也给释放提示错误。方法2是在程序中自己知道什么时候用不到了这块内存后便赋值为NULL来让系统自动回收。推荐使用。因为系统自动回收没有用的内存的线程级别比较低所以不会破坏到您的程序运行。 Java Concurrent 一个生产者,多个消费者,线程如何设计? jni中如何返回字符串? 关于 JAVA 请教c++中的stl与java中容器的问题?? 诅咒rational rose,可怜我一天画的图阿! 构造DefaultTableModel? 本人想速成java2D绘图,哪位好心人能介绍几个有好教程,尤其是大量源代码下载的网站?不胜感激 。 有没有好的办法将数据权限与业务分开? 继续讨论文件目录处理的,高手指点!! 多线程问题 为什么会抛出异常? 为什么抽象方法没有实现, 为什么可以调用的,而且能够实现其应有的功能?
-------------------------
没有必要吧 JVM会知道obj后面有没有被使用的 没有被使用就回收了
--------------------
回复人:TianYaRider(天涯骑士) ( 一级(初级)) 信誉:100
垃圾回收开销较大,如果过多的将对象置null,对性能影响较明显。
方法1是使用系统的方法System.gc(); 这种方法不推荐使用。因为有的时候你的程序可能等待用户输入值所以有可能也给释放提示错误。方法2是在程序中自己知道什么时候用不到了这块内存后便赋值为NULL来让系统自动回收。推荐使用。因为系统自动回收没有用的内存的线程级别比较低所以不会破坏到您的程序运行。