社区
Java
帖子详情
在单例模式中,单例类会不会被GC回收掉?为什么?
albert_qhd
2003-04-07 11:51:02
谢谢!
...全文
529
16
打赏
收藏
在单例模式中,单例类会不会被GC回收掉?为什么?
谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DavidBone
2003-04-20
打赏
举报
回复
ding
DavidBone
2003-04-20
打赏
举报
回复
up
DavidBone
2003-04-20
打赏
举报
回复
up
mem_fox
2003-04-15
打赏
举报
回复
刚才手哆嗦了一下,还没有说完。static来保留对象引用,static是不会被JVM回收,所以他所引用的对象也不会被回收
mem_fox
2003-04-15
打赏
举报
回复
GC只回收没有任何对象引用的Object
tonypotter
2003-04-15
打赏
举报
回复
类一旦被classloader加载到JVM中就不能被清除,直到JVM关闭。因此单例类是不可能被GC回收的
cxy_ll
2003-04-13
打赏
举报
回复
它的生存期应该是所在应用的生命期
比如应用程序的一次run过程中,web应用服务器关闭之前
xiaohaiz
2003-04-11
打赏
举报
回复
不用再争辩了,ZeroC(笨小孩) 和 pcwl(pcwl) 已经解释得很清楚了. 单例类对象的引用始终被保留当然不会被垃圾回收.这么基本的一点,java当然保证了.
wyqiang
2003-04-10
打赏
举报
回复
我想
gc
不会有那功能
czjcsdn
2003-04-09
打赏
举报
回复
不清楚楼主的意思,尝试一下,看看理解地对不对
class a{}
a a1=new a(); 这个a1除非被赋值为null(即 a1=null ),否则 GC 不会理它
new a(); 这里,虽然新生成了一个,但没有 reference 与它关联所以立刻被 GC 回收
pcwl
2003-04-09
打赏
举报
回复
不会!
class Singleton
{
private static Singleton s_instance;//private静态实例
private Singleton(){}//private构造子防止外部new它
public static synchronized Singleton GetInstance()
{
if(s_instance == null)
s_instance = new Singleton();
return s_instance;
}
因为静态成员m_instance始终拥有指向Singleton实例的引用,所以不能被GC回收,但是你当
然有办法使它被GC所回收。如加一个外部方法:
class Singleton
{
//上面的所有代码
public static close(){s_instance = null;}
}
albert_qhd
2003-04-09
打赏
举报
回复
谁能深入解释一下?
ZeroC
2003-04-09
打赏
举报
回复
singleton模式中主要是通过static来保留对象的引用的
这种模式下,singleton的类是不会被gc掉的
wylove
2003-04-09
打赏
举报
回复
Singleton模式是做为"全局变量"的替代品出现的。所以它具有全局变量的特点:全局可见、贯穿应用程序的整个生命期.根据这个特点,我认为他不会被gc回收,所以如果需要的话,应该显式释放!
cowboy1114
2003-04-08
打赏
举报
回复
虽然我不知道单例模式是什么样子,但有一点我可以肯定:只要生成了类,就一定分配了内存,因此就一定会被GC回收掉,除非其中还用到原生函数手动分配了内存,那就要在finalize()中free了。
mercury1231
2003-04-07
打赏
举报
回复
学习***
什么叫单例类啊?英文是什么?
从零手写JDK底层队列
手写JDK的单向双向链表的实现。链表属于java数据结构的一种。大公司面试的必问的。好记性不如烂笔头。自己手写一个链表的实现。一辈子都
不会
忘记所涉及知识点->单向链表->双向链表 ->JDK底层cas的使用->队列先进先出模式->队列先进后出模式->链表对象
gc
回收
关注我。更多java底层实现只是分享
单例
模式
与垃圾
回收
单例
模式
创建的对象是否会被JVM
回收
在
单例
模式
中
,如果对象长久没有被使用,该对象是否会被JVM进行垃圾
回收
呢? 在回答这个问题之前得先弄懂JVM会在什么时候对对象进行垃圾
回收
的。 JVM如何判断一个对象需要被
回收
JVM判断一个对象是否需要被
回收
,得对这个对象进行可达性分析。所谓的可达性分析, 就是判断这个对象是否有到达
GC
Roots的一个引用链,即是否能够到达这个
GC
终于搞清楚了:
单例
对象会被JVM
回收
吗,答:
不会
一、前言 理清概念之后,就可以多思考一些相关的问题,触类旁通。 这里有一个比较常问到的问题,
单例
模式
创建的对象是否会被JVM
回收
?为什么? 二、分析 何为
单例
?
单例
模式
涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意: 1、
单例
类只能有一个实例。 2、
单例
类必须自己创建自己的唯一实例。 3、
单例
类必须给所有其他对象提供这一实例。 例如,以最简单的饿
单例
模式
讨论篇:
单例
模式
与垃圾
回收
Jvm的垃圾
回收
机制到底会
不会
回收
掉
长时间不用的
单例
模式
对象,这的确是一个比较有争议性的问题。将这一部分内容单独成篇的目的也是为了与广大博友广泛的讨论一下这个问题。为了能让更多的人看到这篇文章,请各位博友看完文章之后,点一下“顶”,让本篇文章排名尽量的靠前。笔者在此谢过。 讨论命题:当一个
单例
的对象长久不用时,会
不会
被jvm的垃圾收集机制
回收
。 首先说一下为什么会产生这一疑问,
单例
对象无法被
回收
的原因 -
gc
回收
机制
单例
对象无法被
回收
的真正原因要从java垃圾
回收
器开始说起 JAVA垃圾对象判断准则 Java
中
判断一个对象是否可以被
回收
是根据“可达性”来判定的。 可达性: 以一系列的称为 “
GC
Roots”的对象作为起始点,然后向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到
GC
Roots没有任何引用链相连时,则证明此对象是不可用的,即可视为垃圾。
GC
Root...
Java
50,549
社区成员
85,621
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章