社区
Java SE
帖子详情
如何确保一个对象不被回收?
shanhe
2003-02-16 10:21:56
请教诸位:
我想一个单例对象在整个应用运行期间都不会被回收,因为我会存储一些内容在其中,如果回收后我重建这些内容会很消耗资源,所以我想明确告诉JVM或者通过某种手段确保,除非应用终止,否则永远不会被垃圾收集机制收集。我的这个队可能很长时间都没有使用,我担心jvm系统自作聪明回收了它。
我想知道,能够有多好方法做到这一点?
...全文
279
11
打赏
收藏
如何确保一个对象不被回收?
请教诸位: 我想一个单例对象在整个应用运行期间都不会被回收,因为我会存储一些内容在其中,如果回收后我重建这些内容会很消耗资源,所以我想明确告诉JVM或者通过某种手段确保,除非应用终止,否则永远不会被垃圾收集机制收集。我的这个队可能很长时间都没有使用,我担心jvm系统自作聪明回收了它。 我想知道,能够有多好方法做到这一点?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shanhe
2003-02-17
打赏
举报
回复
谢谢,看来我的担心是多余的。
:)我担心jvm不够聪明,实际上是我理解jvm有偏见,我不够聪明。
结帖
enchanter
2003-02-17
打赏
举报
回复
我觉得yangif和manstar两个人说的就很全。
bluesmile979
2003-02-17
打赏
举报
回复
同意 yangjf(争取减到150以下) ( )
看你的要求用static就好了嘛。
free1978
2003-02-17
打赏
举报
回复
多看一看static关键字知识
乡野村夫卍宸昊
2003-02-17
打赏
举报
回复
确保对象定义的作用域始终有效
yangjf
2003-02-17
打赏
举报
回复
确保有句柄引用它,或者直接static化
freebird_hrt
2003-02-17
打赏
举报
回复
垃圾回收器是全自动的,而且很可靠,有用的东西是不会随便回收的。
qxjavajava
2003-02-17
打赏
举报
回复
在绝大多数情况下,可以不用考虑对象回收的问题
takecare
2003-02-17
打赏
举报
回复
同意onestab(一刺) 、umeshu(一只批着狼皮的羊) 的说法。
jvm还是够聪明的。
umeshu
2003-02-16
打赏
举报
回复
据你所写的内容来看,你什么都不用作就可以达到你的目的了。
方工
2003-02-16
打赏
举报
回复
确保对该对象一直保持有效的引用。jvm还是够聪明的,不会随便回收有用的东西。
jvm怎么判断
对象
是否可以被
回收
垃圾
回收
的可达性分析是从一组称为GC Roots的根节点开始的。栈帧中的局部变量:当前正在执行的方法中的所有局部变量和参数。JVM栈中的每个活动栈帧可能持有对
对象
的引用,这些
对象
自然就被认为是可达的。方法区中的静态变量:所有类的静态属性(类变量)和常量引用的
对象
。类加载器加载类时,会将类的静态变量存储在方法区,这些变量持有的
对象
也被认为是可达的。方法区中的常量引用:如字符串常量池中的引用,或者方法区内的常量引用。常量池中的字符串常量和方法引用的
对象
在程序运行期间不会改变,因此被认为是可达的。
虚引用所指向的
对象
到底什么时候被
回收
?
虚引用
对象
到底什么时候被
回收
? 晚上被这个问题干了
一个
多小时。。。 问题来源代码: import java.lang.ref.PhantomReference; import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; /** * @Author: xiaoshijiu * @Date: 2020/2/27 *...
终于搞清楚了:单例
对象
会被JVM
回收
吗,答:不会
一、前言 理清概念之后,就可以多思考一些相关的问题,触类旁通。 这里有
一个
比较常问到的问题,单例模式创建的
对象
是否会被JVM
回收
?为什么? 二、分析 何为单例? 单例模式涉及到
一个
单一的类,该类负责创建自己的
对象
,同时
确保
只有单个
对象
被创建。这个类提供了一种访问其唯一的
对象
的方式,可以直接访问,不需要实例化该类的
对象
。 注意: 1、单例类只能有
一个
实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他
对象
提供这一实例。 例如,以最简单的饿
【Java JVM】
对象
回收
判断
Java
对象
回收
判断是程序设计中至关重要的一环。在面向
对象
的编程中, 合理的
对象
回收
策略直接影响着程序的性能和内存利用效率。因此, 深入了解和准确判断 Java
对象
的
回收
时机, 不仅可以优化程序的运行性能, 还能有效避免内存泄漏和资源浪费。本文将简单的分析一下 JVM 中
对象
回收
的判断机制, 了解一下整体的
对象
回收
过程。
弱引用——WeakReference——所引用的
对象
的
回收
规则
弱引用 WeakReference 相关的GC
回收
规则 当
一个
对象
仅被
一个
弱引用实例引用(持有)时,这个
对象
就会被GC
回收
。 注意 上述规则中,会被GC
回收
的是弱引用实例引用的
对象
,而非弱引用实例本身 如果显式地声明了
一个
变量E e = new E();指向
一个
对象
,而这个
对象
e被WeakReference实例持有引用,则由于
对象
的引用被变量e持有,
对象
并不符合上述
回收
规则,因此
对象
至少在变量e的作用域范围内都不会被
回收
。 例如: class Apple{ String color; void Ap
Java SE
62,627
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章