社区
Java SE
帖子详情
System.gc()和System.runFinalization()功能一模一样吗???
孤尽JavaSea
2009-08-28 09:49:57
好象在CSDN上,有人说这两者功能一模一样的,既然一样,,在同一个类里,何必定义两个方法。
...全文
340
7
打赏
收藏
System.gc()和System.runFinalization()功能一模一样吗???
好象在CSDN上,有人说这两者功能一模一样的,既然一样,,在同一个类里,何必定义两个方法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
humanity
2009-08-29
打赏
举报
回复
如果你想立即 GC,
要按顺序调用2个方法:
gc();
runFinalize(); 它会立即清理内存,不过不知道不同的 JVM 是不是有不同。
我在 Eclipse 插件中用过,确实立即执行。只写一个 gc() 它总是置若罔闻。
meiwenhui
2009-08-29
打赏
举报
回复
只知gc(),还没用过runFinalization()。学习了
lcj_up
2009-08-29
打赏
举报
回复
没用过。。。学习学习。。。
zhangyong20081204
2009-08-29
打赏
举报
回复
我的认识是,runFinalization()是只是执行还没有完成的finalize 方法,还是尽量的。
finalize 方法是所有类继承了Ojbect的。所以应该比gc()还要上层的关系,
孤尽JavaSea
2009-08-29
打赏
举报
回复
感觉还不是很清晰。。
yaoguicheng
2009-08-28
打赏
举报
回复
是否可以这样理解?
前者是把占了内存但是没有利用,同时没有被垃圾回收机制处理的对象尽可能的处理掉。
后者是强制垃圾回收机制尽可能的回收没有被利用的对象,以释放出其占用的内存。
knightzhuwei
2009-08-28
打赏
举报
回复
runFinalization
public static void runFinalization()
运行处于挂起终止状态的所有对象的终止方法。
调用该方法说明 Java 虚拟机做了一些努力运行已被丢弃对象的 finalize 方法,但是这些对象的 finalize 方法至今尚未运行。当控制权从方法调用中返回时,Java 虚拟机已经尽最大努力去完成所有未执行的终止方法。
调用 System.runFinalization() 实际上等效于调用:
Runtime.getRuntime().runFinalization()
gc
public static void gc()
运行垃圾回收器。
调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。
调用 System.gc() 实际上等效于调用:
Runtime.getRuntime().gc()
这两个真的一样么?
System.
gc
()和System.
run
Final
izat
ion
()
//垃圾回收 System.
gc
(); System.
run
Final
izat
ion
();
run
Final
izat
ion
public static void
run
Final
izat
ion
() 运行处于挂起终止状态的所有对象的终止方法。 调用该方法说明 Java 虚拟机做了一些努力运行已被丢弃对象的
final
ize 方法,但是这些对象的
final
ize 方
system.
gc
()和system.
run
Final
izat
ion
()区别作用
system.
gc
()和system.
run
Final
izat
ion
()区别作用: System.
gc
();//告诉垃圾收集器打算进行垃圾收集,而垃圾收集器进不进行收集是不确定的 System.
run
Final
izat
ion
();//强制调用已经失去引用的对象的
final
ize方法 java中的
final
ize()方法 当垃圾收集器认为没有指向对象实例的引用时,会在销毁该对象...
System.
gc
()
文章目录 System.
gc
()等同于
Run
time.get
Run
time().
gc
(),因为System.
gc
()底层就是调用
Run
time.get
Run
time().
gc
()实现的。通过显示的调用System.
gc
(),表示显示的触发FULL
GC
,同时对新生代和老年代进行垃圾回收,但是调用System.
gc
()无法保证JVM立即进行垃圾回收。 JVM的垃圾回收是自动进行的,无须手动触发。 System.
gc
()与System.
run
Final
izat
ion
()区别: 前面已经介绍,System.
gc
System.
gc
()详解
通过使用System.
gc
()或者
Run
time.get
Run
time().
gc
()调用会显示触发Full
GC
,同时对新生代和老年代回收 System.
gc
()底层调用
Run
time.get
Run
time().
gc
() 程序中如果System.
gc
()会通知jvm的垃圾收集器来回收,但是此时垃圾收集器不一定一定来回收,即
final
ize方法有可能调用,有可能不调用。 此时如果调用System.
run
Final
izat
ion
()方法,会强制调用对象的
final
ize方法 ...
Java 强制执行垃圾回收 System.
gc
()、System.
run
Final
izat
ion
()
参见《Java编程思想第四版》PDF,P109 1. System.
gc
() 可强制执行垃圾回收操作; 2. 若要是所有对象执行
final
ize()方法:,需先执行System.
gc
() ,在执行System.
run
Final
izat
ion
() System.
gc
(); System.
run
Final
izat
ion
();
Java SE
62,610
社区成员
307,332
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章