java 对象 释放问题,请各位指教,谢谢!!!

kld208 2008-12-12 03:46:29

请问我如果new了一个对象(譬如obj)后,当这个对象使用完后,我如果没有obj=null,
jvm是不是,不会将它收回并释放啊??
线程是不是也是如此,如Thread t = new Thread();t.start();后,如果没有t=null;
是不是也吗、不能被收回,释放呢 ????
请各位指教,谢谢!!!!!
...全文
95 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
myjava_024 2008-12-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 java2000_net 的回复:]
没有任何人使用的一个或者一组对象,会通过垃圾回收机制,被某个时间回收
垃圾回收请参考这个文章全面分析Java的垃圾回收机制
[/Quote]

写得很好,值得学习
henry_fuzr 2008-12-12
  • 打赏
  • 举报
回复
有个关键点说下,就是什么时候对象变成垃圾了。

就是对象失去了引用的时候。

哪有人会问什么时候失去引用,注意引用时放在堆栈之中。

看一下堆栈的特性就知道了。

就是这样设计的。。。。
henry_fuzr 2008-12-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 kld208 的帖子:]

请问我如果new了一个对象(譬如obj)后,当这个对象使用完后,我如果没有obj=null,
jvm是不是,不会将它收回并释放啊??
线程是不是也是如此,如Thread t = new Thread();t.start();后,如果没有t=null;
是不是也吗、不能被收回,释放呢 ????
请各位指教,谢谢!!!!!
[/Quote]

两个问题 都是会回收。
java有垃圾回收机制。
不同的的JVM有不同的垃圾回收机制,
说一下 下面这种,“自适应垃圾回收机制”。
自己google吧,不想打字了。
kld208 2008-12-12
  • 打赏
  • 举报
回复
"没有任何人使用的一个或者一组对象,会通过垃圾回收机制,被某个时间回收 ."
"为null表示让垃圾回收器知道这个对象要回收了。如果不写的话,就需要等对象自动回收"

这样就是说如果某个对象不再被使用了,将会被自动收回;
而如果将其置为null,则就是表示其现在没有被使用,通知垃圾回收器将其收回。
是这个样子吗?

kampan 2008-12-12
  • 打赏
  • 举报
回复
在内存即将用尽的情况下有可能不被立即回收,即便已经用完。
hy0231 2008-12-12
  • 打赏
  • 举报
回复
为null表示让垃圾回收器知道这个对象要回收了。如果不写的话,就需要等对象自动回收。
捏造的信仰 2008-12-12
  • 打赏
  • 举报
回复
1、不需要赋值为 null,JVM 也会回收。实际上,赋值为 null 这样的语句完全没有用。
2、线程也会回收。

凡是能够自动释放的资源,都会被回收,那些不能自动释放的资源,比如数据库连接,就必须手动写管比语句,并且要保证关闭语句一定会执行。否则不会被回收。
老紫竹 2008-12-12
  • 打赏
  • 举报
回复
没有任何人使用的一个或者一组对象,会通过垃圾回收机制,被某个时间回收
垃圾回收请参考这个文章全面分析Java的垃圾回收机制

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧