Java对象池回收对象的问题

写了个Java的对象池,对象用完之后再放到池子里,然后我怎么知道对象什么时候用完呢? 我自己用完了,但别的地方还引用了这一对象,不就出问题了? Java能获得一个对象当前有多少引用吗?

6个回答

不是用完了就放回收池,是一段时间未使用才会被回收

我目前没听说过获得一个对象有多少引用的方法。
什么时候回收不应该是对象池应该关心的事,而是使用者决定什么时候放回去。
所以什么时候用完你是必须要清楚地,这是由你的代码控制什么时候放回去。。

c39660570
小小爱1990 作为对象池使用者,他用完了对象,把对象放回去,但这时候别的地方可能保存了对象的引用,就会造成可能会造成野指针。如果使用者要确保对象没有其他引用的话,不就失去了Java没有野指针的优点了?
4 年多之前 回复

我目前没听说过获得一个对象有多少引用的方法。
什么时候回收不应该是对象池应该关心的事,而是使用者决定什么时候放回去。
所以什么时候用完你是必须要清楚地,这是由你的代码控制什么时候放回去。。

可以参考JVM的回收对象的方法,

havedream_one
havedream_one http://jbutton.iteye.com/blog/1569746
4 年多之前 回复
c39660570
小小爱1990 JVM是怎么判断对象有没有被引用的,刚学java,不会啊~~
4 年多之前 回复

自己创建的对象池,需要自己管理了。获取时标示一下获取的那个在使用,其他不能再获取,使用完了在改一下标示,其他可以获取了。
只不过在多线程处理中,要防止线程资源争用,最好在获取时同步一下。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问