首页 / 知识
关于垃圾回收:Java和手动执行finalize
2023-04-13 06:48:00

Java and manually executing finalize
如果我从程序代码中的对象上调用 这是一个大概的例子:
对 根据这个简单的测试程序,即使您显式调用了JVM,JVM仍将对finalize()进行调用:
输出为:
那里的每个资源都说永远不要显式地调用finalize(),甚至几乎永远都不会实现该方法,因为无法保证是否以及何时调用它。最好只手动关闭所有资源。 必须了解垃圾收集器(GC)工作流程才能了解完成的功能。调用.finalize()不会调用垃圾回收器,也不会调用system.gc。实际上,最终确定将有助于编码人员将对象的引用声明为"未引用"。 GC强制中止JVM的运行操作,这会降低性能。在运行期间,GC将从根对象(您的主要方法调用)开始遍历所有引用的对象。可以通过手动将对象声明为未引用来减少该挂起时间,因为这样可以减少自动运行过时声明对象引用已过时的操作成本。通过声明finalize(),编码器将对对象的引用设置为作废,因此在下一次GC操作时,GC运行将不使用操作时间就清除对象。 Quote:"在为对象调用finalize方法之后,在Java虚拟机再次确定不再有任何方法可以由尚未死亡的任何线程访问该对象之前,不采取进一步的措施,包括准备好完成的其他对象或类可能采取的措施,此时可能会丢弃该对象。"从java.Object.finalize()上的Java API文档中获取信息。 有关详细说明,您还可以检查:javabook.computerware JVM对于任何给定对象都不会多次调用finalize方法。无论如何,您都不应该依赖finalize,因为不能保证会调用它。如果由于需要执行清理代码而调用finalize,则最好将其放入一个单独的方法中并使其明确,例如:
|
最新内容
相关内容
python如何让程序暂停执行和继续执
python如何让程序暂停执行和继续执行?,暂停,培训,程序,继续,空格键,函数,以上,操作,方法,更多,python让程序继续执行的方法:一、使用到的函数python如何获取程序执行时间?
python如何获取程序执行时间?,代码,培训,标准,程序,方法,中间,使用方法,以上,手册,更多,python获取程序执行时间的方法:1、使用time.clock()方Python如何创建对象,有哪些方法
Python如何创建对象,有哪些方法,培训,对象,方法,内容,函数,属性,所在,以上,以下,功能,以下介绍Python创建对象的9种方法。classPoint:def__ini批处理怎么执行Python程序
批处理怎么执行Python程序,培训,方式,文件,程序,脚本,文件夹,路径,命令,以上,格式,批处理执行Python程序的方式:第一种方式:@echooffC:cdC:\Upython执行报错有哪些原因
python执行报错有哪些原因,时报,培训,横线,标点符号,错误,原因,目录,法名,程序,都会,python执行时报错,可能是以下的几种原因1、运行出现objecpython类对象和实例对象是一样的吗
python类对象和实例对象是一样的吗,地址,概念,下来,数据,培训,实例,对象,方法,属性,变量,python面向对象最重要的概念就是类(Class)和实例(Incmd中如何执行Python文件
cmd中如何执行Python文件,第一,名称,培训,文件夹,目录,文件,驱动器,序列号,指令,路径,以进入D盘文件夹,安装python第三方库pip为例:第一种方法_python对象与方法的区别是什么
python对象与方法的区别是什么,地址,数据,培训,对象,函数,类型,字符串,方法,表示,身份,python使用对象模型来存储数据,也就是说构造任何类型的如何中断python的执行
如何中断python的执行,暂停,时间,培训,模块,语句,可能会,有所不同,长短,上下,手段,在Python3中已经有很大一部分语句与Python2不互通了,运行暂pythonlinux如何执行python
pythonlinux如何执行python,培训,代码,脚本,文件,文本,权限,之后,绝对路径,程序,头部,linux运行python脚本的方法:1、命令行执行:建立一个test.python如何实例化一个对象
python如何实例化一个对象,培训,名称,实例,括号,关键字,对象,函数,字母,方式,以上,python中同样使用关键字class创建一个类,类名称第一个字母python类和对象的区别是什么
python类和对象的区别是什么,培训,主体,汽车,状态,对象,定义,属性,方法,实例,区别,类和对象1、类和对象得区别:类是对客观世界中事物得抽象,而