栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JVM / GC是否在程序/线程出口上调用`finalize()`?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JVM / GC是否在程序/线程出口上调用`finalize()`?

不,Java不保证在程序退出时GC将触发。如果要对退出使用

Runtime.addShutdownHook
方法执行操作。阅读这在SPEC说什么孙文章。

Java平台的规范几乎没有保证垃圾收集的实际工作方式。这是Java虚拟机规范(JVMS)关于内存管理的内容。

堆是在虚拟机启动时创建的。自动存储管理系统(称为垃圾收集器)可以回收对象的堆存储;对象永远不会显式释放。Java虚拟机不假定使用特定类型的自动存储管理系统,可以根据实现者的系统要求选择存储管理技术。1尽管看起来有些混乱,但未严格定义垃圾收集模型这一事实实际上很重要有用-
严格定义的垃圾回收模型可能无法在所有平台上实现。同样,从长远来看,这可能会阻止有用的优化并损害平台的性能。

尽管没有一个地方包含所需垃圾收集器行为的完整定义,但是许多Java模型是通过Java语言规范和JVMS中的许多部分隐式指定的。虽然不能保证遵循的确切过程,但是所有兼容的虚拟机都共享本章中介绍的基本对象生命周期。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/495808.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号