finalize方法是Object类的一个Protected方法。每个对象都有自己的finalize方法,通过super.finalize()方法来调用。如果你写了两个类,类名分别为A和B,在B类中你想调用A类的finalize()方法,A类必须重写Object对象的finalize方法。
[color=green][b]java-(public,private,protected)访问修饰符的 作用域(访问范围)[/b][/color]
[img]http://dl.iteye.com/upload/attachment/453334/c6e59305-247e-33a6-8d77-99ca7b383a25.jpg
问题:finalize()在什么时候被调用
有三种情况
1.所有对象被Garbage Collection时自动调用,比如运行System.gc()的时候
2.程序退出时为每个对象调用一次finalize方法
3.显式的调用finalize方法
注意:调用System.gc(),只是建议虚拟机进行垃圾回收,但垃圾回收并不一定立即启动。
除此以外,正常情况下,当某个对象被系统收集为无用信息的时候,finalize()将被自动调用,但是jvm不保证finalize()一定被调用,也就是说,finalize()的调用是不确定的,这也就是为什么sun不提倡使用finalize()的原因。你的程序应该提供其他的方法来释放由对象使用的系统资源,而不能依靠finalize()来完成程序的正常操作。
调用finalize方法
原创mb65017f8b83427 博主文章分类:JAVA ©著作权
©著作权归作者所有:来自51CTO博客作者mb65017f8b83427的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:JSP两种注释方法
下一篇:Multiple Thread
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【Java】finalize()方法的使用
finalize()方法是Object类提供的方法,在GC(垃圾回收器)准备释放对象所占用的
java jvm 开发语言 垃圾回收 内存空间 -
【JavaSE】finalize方法基本使用
finalize 方法当对象被回收时,系统自动调用该对象的 finalize 方法。子类可以重写该方法,做一些释放资源的操作。
java finalize方法基本使用 finalize方法 finalize javase