在Java中如何主动的去释放无用对象,从而使得系统GC可以尽早释放内存?在编程上需要注意些什么?
展开全部
1、与C语言相比,垃圾回收器是JAVA的一大优势。其功能在于自动释放违背占用的内存,但何时去释放有其自身的算法,不支持使用者直接释放内存。
2、使用者所能做的只是使用System.gc()通知JAVA垃圾回收器在“合适”的时间逐个使用Object.finalize()清除未为程序引用的各个对象。
3、使用着调用Object的finalize()方法不会启动任何作用,只能是重写该方法执行写对象销毁前应做的操作,如关闭IO等。
4、使用者还可以做到的就是指定那些对象占用的内存会被释放,方法就是将对象的值赋为NULL。
5、编程用使用者应做的就是提高对象的复用性,尽量少的声明对象。
2、使用者所能做的只是使用System.gc()通知JAVA垃圾回收器在“合适”的时间逐个使用Object.finalize()清除未为程序引用的各个对象。
3、使用着调用Object的finalize()方法不会启动任何作用,只能是重写该方法执行写对象销毁前应做的操作,如关闭IO等。
4、使用者还可以做到的就是指定那些对象占用的内存会被释放,方法就是将对象的值赋为NULL。
5、编程用使用者应做的就是提高对象的复用性,尽量少的声明对象。
展开全部
垃圾回收机也不会立即回收该对象所占的资源,只有当内存不够用的时候,垃圾回收机才会去回收
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
手动调用Sysytem.gc(); 但也没有马上进行释放内存
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
养成良好的编程习惯,避免内存泄露等低级错误。
要靠时间积累和体会
要靠时间积累和体会
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询