社区
Java SE
帖子详情
System.gc()和System.runFinalization()功能一模一样吗???
孤尽JavaSea
2009-08-28 09:49:57
好象在CSDN上,有人说这两者功能一模一样的,既然一样,,在同一个类里,何必定义两个方法。
...全文
379
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 方法至今尚
Android System.
gc
()与
Run
time.get
Run
time().
run
Final
izat
ion
()
背景 在看square Leakcanary源码时,发现这样一段话:
Gc
Trigger DEFAULT = new
Gc
Trigger() { @Override public void
run
Gc
() { // Code taken from AOSP
Final
izat
ion
Test: // https://android.googlesou
调用System.
gc
()会发生什么?
https://blog.csdn.net/yewei02538/article/details/52386642 查看源码 当我们调用System.
gc
()的时候,其实并不会马上进行垃圾回收,甚至不一定会执行垃圾回收,查看系统源码可以看到 /** * Indicates to the VM that it would be a good time to
run
the ...
JVM 基础 (4) -- System.
gc
()
文章目录1. System.
gc
() 的作用2. System.
gc
() 源码3. 如何保证 System.
gc
() 有效4. System.
gc
() 与
Run
time.get
Run
time().
gc
() 的区别 1. System.
gc
() 的作用 System.
gc
() 的作用是建议虚拟机进行一次 Full
GC
,但是虚拟机可以拒绝这个
GC
请求。
GC
线程是一种守护线程 2. Sy...
System.
gc
()的理解 显式触发Full
GC
【代码证明】
System.
gc
()的理解 1、在默认情况下,通过System.
gc
()或者
Run
time . get
Run
time() .
gc
()的调用,会显式触发Full
GC
,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。 2、然而System.
gc
()调用附带一个免责声明,无法保证对垃圾收集器的调用。也就是说调用System.
gc
() JVM不一定会去Full
GC
3、JVM实现者可以通过System.
gc
印)调用来决定JVM的
GC
行为。而- -般情况 下,垃圾回收应该是自动进行的,无须手
Java SE
62,622
社区成员
307,255
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章