社区
Java SE
帖子详情
Runtime类的gc和runFinalization的区别。
gengliangyu
2008-11-21 07:32:43
Runtime类的gc不是立刻运行垃圾回收机制吗,运行垃圾回收不就是运行finalize 方法吗,
怎么runtime类里面还有一个runFinalization方法,我看注释写得是运行finalize方法,
我想问一下,gc和runFinalization这两个方法有什么区别,高手帮忙解释一下,在此先谢过了!
...全文
350
10
打赏
收藏
Runtime类的gc和runFinalization的区别。
Runtime类的gc不是立刻运行垃圾回收机制吗,运行垃圾回收不就是运行finalize 方法吗, 怎么runtime类里面还有一个runFinalization方法,我看注释写得是运行finalize方法, 我想问一下,gc和runFinalization这两个方法有什么区别,高手帮忙解释一下,在此先谢过了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xyghehehehe
2010-11-16
打赏
举报
回复
finalize方法本身和gc的垃圾回收其实没有直接的关系,他就是类中的一个方法,只不过是gc回收垃圾对象时会先调用这个方法,所以可以重写这个方法定义一些操作,在对象被回收之前执行。
xyghehehehe
2010-11-16
打赏
举报
回复
gc()并不是马上启动gc进行垃圾回收,而是相当于程序提出建议,建议虚拟机回收垃圾,但是具体什么时候回收垃圾是由虚拟机决定的。各种虚拟机的gc机制并不相同,因为运行gc也要耗费资源,所以大多数时候虚拟机是在分配给它的系统资源即将耗尽的时候才启动gc线程,可以理解为调用gc()方法可以提高gc线程的优先级吧。另外,一般的gc算法的基本原理是引用记数,比如你创建了一个对象,虚拟机会计算指向这个对象的引用,如果没有任何一个引用指向这个对象了,这个对象便在垃圾回收的范畴,这样当gc机制启动时便会将这个对象回收。回收这个对象时,虚拟机会先调用对象的finalize方法,这个方法是Object类的方法,自定义类中可以重写这个方法来实现对象被垃圾回收前进行相应的操作。runFinalization方法和finalize方法好像没有什么直接联系吧。
gesanri
2008-11-26
打赏
举报
回复
关于System.gc()和finalize()
http://blog.tom.com/moonhippo/article/1642.html
gengliangyu
2008-11-25
打赏
举报
回复
[Quote=引用 5 楼 ar7043 的回复:]
gc不是立刻运行垃圾回收,而finalize也不是你运行了gc就执行的你也不知道他什么时候执行的。
垃圾回收只与内存有关。runFinalization这倒有一个讨论的http://book.77169.org/3930/3930352.htm
[/Quote]
你说的那个网站我访问不上去,高手再帮忙看一下这个问题啊,谢谢了!
renmms
2008-11-23
打赏
举报
回复
[Quote=引用 5 楼 ar7043 的回复:]
gc不是立刻运行垃圾回收,而finalize也不是你运行了gc就执行的你也不知道他什么时候执行的。
垃圾回收只与内存有关。runFinalization这倒有一个讨论的http://book.77169.org/3930/3930352.htm
[/Quote]、、
这个帖子不错!
“gc在大部分状况下会将没有任何指向的引用的内存释放掉,除非在特殊情况下,最好不要干涉gc!
runFinalization()方法在调用时它会尽量去调用这个对象的finalize方法!
都是强制gc去回收内存,其它大部分相似!”
gengliangyu
2008-11-22
打赏
举报
回复
[Quote=引用 2 楼 qusic 的回复:]
gc是垃圾回收器,它在回收废弃对象时,会调用将要回收对象的finalize方法
这只是第一步,接下来就要释放对象的内存了。
而runFinalization方法,按你说的只是运行finalize方法,当然不同了
[/Quote]
楼上的意思是不是说垃圾回收的时候不只运行对象的finalize方法,还会有一些其他的操作。
那是我理解错了,我以前一直以为垃圾回收就是调用一下finalize方法,别的就什么也不做了。
楼上的能说得更明白一些吗,比如finalize方法里面是怎么写的,还有垃圾回收的时候除了finalize 方法之外还会做别的什么操作。 谢谢了!
qusic
2008-11-22
打赏
举报
回复
gc是垃圾回收器,它在回收废弃对象时,会调用将要回收对象的finalize方法
这只是第一步,接下来就要释放对象的内存了。
而runFinalization方法,按你说的只是运行finalize方法,当然不同了
ar7043
2008-11-22
打赏
举报
回复
gc不是立刻运行垃圾回收,而finalize也不是你运行了gc就执行的你也不知道他什么时候执行的。
垃圾回收只与内存有关。runFinalization这倒有一个讨论的http://book.77169.org/3930/3930352.htm
gengliangyu
2008-11-22
打赏
举报
回复
自己再顶一下,期待高手再给个答复!
gengliangyu
2008-11-21
打赏
举报
回复
怎么没人回应啊??谁懂帮忙说一下啊!
Run
time
.get
Run
time
().
gc
() 和
Run
time
.get
Run
time
().
run
Final
izat
ion
() 的
区别
文章目录前言一、
Run
time
.get
Run
time
().
gc
()1.与System.
gc
() 对比2.官方说明二、
Run
time
.get
Run
time
().
run
Final
izat
ion
()1.与System.
run
Final
izat
ion
() 对比2.官方说明3.为什么不推荐使用
final
ize()三、测试
GC
1.查看当前jvm占用内存总结 前言 很多小伙伴可能没用过甚至没见过这两个方法,但作为一名 java 开发仔,你肯定见过 System.
gc
(); 带着这个想法,我们接着往下看 一、
Run
ti
System.
gc
、
Run
time
.
gc
() 、 system.
run
Final
izat
ion
()
区别
作用
System.
gc
()和
Run
time
.
gc
()的作用: 这两个方法用来提示JVM要进行垃圾回收。但是,立即开始还是延迟进行垃圾回收取决于JVM。 System.
run
Final
izat
ion
()作用: 强制调用已经失去引用的对象的
final
ize()方法 java中的
final
ize()方法 当垃圾收集器认为没有指向对象实例的引用时,会在销毁该对象之前调用
final
ize()方法。该方法最常见的作用是确保释放实例占用的全部资源。java并不保证定时为对象实例调用该方法,甚至不保证方法会被调用,所以该方法不
System.
gc
()与
Run
time
.
gc
()的
区别
(1)
GC
是垃圾收集的意思(Gabage Collect
ion
),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的
GC
功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。 (2) 对于
GC
来说,当程序员创建对象时,
GC
就开始监控这个对象的地址、大小以及使用情况。通常,
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方法 ...
System.
gc
() 与
Run
time
.
gc
()、system.
run
Final
izat
ion
()的
区别
(1)
GC
是垃圾收集的意思(Gabage Collect
ion
),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的
GC
功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。 (2) 对于
GC
来说,当程序员创建对象时,
GC
就开始监控这个对象的地址、大小以及使用情况。通常,
GC
采用有...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章