社区
Java SE
帖子详情
java的垃圾回收机制是完全不可控的,但调用System.gc()后不就会清理内存了吗
tpos
2010-06-09 01:58:22
这两件事不矛盾吗?调用System.gc()后java垃圾回收器不就是可控的了吗?
...全文
531
13
打赏
收藏
java的垃圾回收机制是完全不可控的,但调用System.gc()后不就会清理内存了吗
这两件事不矛盾吗?调用System.gc()后java垃圾回收器不就是可控的了吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cainiaoxuexi
2010-06-25
打赏
举报
回复
这个System.gc()函数的作用只是提醒虚拟机,但是它不能保证垃圾回收一定会进行,而且具体什么时候进行是取决于具体的虚拟机的,不同的虚拟机(对应的os不同等)有不同的对策。
fantasy471503202
2010-06-24
打赏
举报
回复
恩,对虚拟机垃圾回收的时间问题也是颇有疑问。
ronniegxq
2010-06-24
打赏
举报
回复
调用gc的时候不一定回收,不调用gc的时候不一定不回收
xiangchang224
2010-06-24
打赏
举报
回复
调用gc的时候不一定回收,不调用gc的时候不一定不回收。
你可以看看http://www.javaeye.com/topic/695362
space_Wind
2010-06-10
打赏
举报
回复
有句话是这样的,调用gc的时候不一定回收,不调用gc的时候不一定不回收。
西北地的风
2010-06-10
打赏
举报
回复
System.gc()只是在回收的时候会进行此清理动作,回收的时机不由gc()决定,而由JVM的算法决定
ZangXT
2010-06-09
打赏
举报
回复
System.gc()可以屏蔽掉的。
龙四
2010-06-09
打赏
举报
回复
System.gc()是提醒作用!
就好比你妈妈叫你该写作业,这是提醒,至于你写不写,你妈妈不会管你的
wuyaowen2000
2010-06-09
打赏
举报
回复
System.gc()只是建议回收,实际回收与否看运气了
rmouse_2005
2010-06-09
打赏
举报
回复
System.gc()只是通知要垃圾回收了,但是并没有即刻进行垃圾回收
focusforce
2010-06-09
打赏
举报
回复
《深入JVM》里不知道是否有详实描述。
看看API关于System.gc()的说明:运行垃圾回收器。
调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。
设置比较合理的xms和xmx,避免内存泄露,才是控制内存的好办法。
%java_home%\demo\management\ 下面的demo可以看看,展示了对内存的一些管理活动。
「已注销」
2010-06-09
打赏
举报
回复
调用 System.gc 也仅仅是通知而已
要等虚拟机觉得需要执行时才执行
wutian4567268
2010-06-09
打赏
举报
回复
调用System.gc()后也不是立即执行回收,有可能不回收
垃圾回收机制
对于任何一门语言而言,在运行过程中都
会
创建许多对象,继而需要为这些对象分配
内存
地址,当这些对象不需要使用的时候,需要释放其占用的
内存
地址,以供新的对象使用。关于对象
内存
释放的这一机制就叫做
垃圾回收机制
(
GC
)。
Java
中垃圾回收是自动化的,但其
可控
性差,
内存
容易溢出。
内存
溢出是因为JVM
内存
分配的对象过多,这些对象所需
内存
超出了JVM
内存
大小。虽然
Java
中是自动的。但是程序员仍可
调用
System.
gc
( )来进行手动回收,
调用
此方法
会
尝试释放被丢弃的对象占用的
内存
,但结果无法保证,因此附带一个免责声明。
java
gc
与finalize,
Java
中System.
gc
()和finalize()方法之间有什么区别?
I am confuse in between system.
gc
() and finalize() method of
java
.We can't force to collect garbage object to JVM. We are allow to write both methods in our
java
code then if both are used for garbage...
别再乱用System.
gc
()了!手把手教你用ByteBuffer.allocateDirect的正确释放姿势(附
内存
泄漏排查)
本文深入探讨了
Java
中堆外
内存
的正确使用方法,重点解析了`ByteBuffer.allocateDirect()`的
内存
释放机制。通过对比`System.
gc
()`的误区与Cleaner机制的实际作用,提供了多种可靠的堆外
内存
释放方案,并附有
内存
泄漏排查的实用工具和方法,帮助开发者高效管理直接
内存
资源。
java
垃圾回收
目录 一、jvm怎么确定哪些对象应该进行回收 1. 引用计数法: 可达性分析算法 二、在确定了哪些对象可以被回收之后,jvm
会
在什么时候进行回收 三、如何回收 1 标记-清除算法 2 复制算法 3 标记-整理算法 4 分代收集算法 (1)新生代 (2)老年代 (3)永久代 本文转载自:https://note.youdao.com/ynoteshare1/index...
java
gc
串行 并行_基础知识点-
GC
1、
GC
是什么?为什么要有
GC
?
GC
垃圾收集,
Java
提供的
GC
可以自动监测对象是否超过作用域从而达到自动回收
内存
的目的。垃圾回收可有效使用
内存
和防止
内存
泄露。垃圾回收器通常是作为一个单独的低优先级线程运行,不可预知的情况下对
内存
堆中已死亡或长久无使用的对象进行清除和回收。回收机制:分代复制垃圾回收、标记垃圾回收、增量垃圾回收等方式。2、什么时候
会
导致垃圾回收?1)当Eden区和Survivor区...
Java SE
62,621
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章