Finalize方法中的异常[重复]

2023-11-24

可能的重复:
方法终结和异常

垃圾收集器调用finalize()当对象即将从内存中释放时的方法。当异常发生时会发生什么finalize() method?

GC 会继续进行并释放内存,还是 GC 将停止该对象的进程?


如果异常在 try-catch 语句中引发并被正确捕获,那么是的,“GC 将进一步进行”,就像在常规程序中一样。

但是如果抛出的异常没有被处理,那么根据JSL,

如果在终结期间引发未捕获的异常,则该异常将被忽略并且该对象的终结将终止。

因此,在这种情况下,“GC 将停止该对象的进程”,在这种情况下,它的某些资源可能没有被正确释放。

顺便说一句,终结器有两个缺点:

  • 您无法确定 Finalize 方法是否会被执行(从这个博客)

    如果垃圾收集器总是在释放与对象关联的内存之前调用 Finalize,为什么会执行上述操作?原因是垃圾收集器并不总是有机会在 JVM 终止之前清理对象。

  • 终结器强制将对象提升到旧空间(需要更长的时间来收集),并推迟 GC 直到运行终结器,从而增加了 GC 算法的开销。 (参见 Java 性能调优第 2 版,Jack Shirazi 版)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Finalize方法中的异常[重复] 的相关文章

随机推荐

  • 在 MVC 操作中将 SSRS 报告导出为 PDF

    是的 我想将 SSRS 报告导出为 PDF 并从我的操作中返回它 我没有任何报告查看器 请建议我如何实现这一目标 到目前为止我已经做到了 public void SqlServerReport NetworkCredential nwc n
  • 指针和数组混淆的 K&R Qsort 示例

    我发现很难理解下面的代码片段 我理解所显示的指向函数风格的指针 但我发现混乱之处在于指示的行中 void qsort void v int left int right int comp void void int i last void
  • 带有数字填充的 CSS 计数器 [重复]

    这个问题在这里已经有答案了 可以垫吗counter数字取决于其价值 div counter reset ruler div gt span display block line height 1rem div gt span before
  • 在VS2022中的wsl2中调试控制台时读取输入

    我在 Visual Studio 2022 中创建了一个控制台应用程序 只有两行 WriteLine 和 ReadLine 在 Windows 上调试它时 会打开一个控制台 显示输出并等待输入 但是 如果我将其切换到 WSL 调试 我会在
  • Java:ArrayList如何管理内存

    在我的数据结构课程中 我们研究了 Java ArrayList 类 以及当用户添加更多元素时它如何增长底层数组 这是可以理解的 但是 我无法弄清楚当从列表中删除大量元素时 此类到底如何释放内存 查看源码 删除元素的方法有3种 public
  • 如何指定退出或中止的方法

    我有一个从 CLI 触发的方法 该方法具有一些显式退出或中止的逻辑路径 我发现 在为此方法编写规范时 RSpec 将其标记为失败 因为退出是异常 这是一个简单的例子 def cli method if condition puts Ever
  • 如何使用 sox 合并多个音频文件

    我使用以下命令通过 sox 将两个音频文件合并为一个 sox end mp3 p pad 6 0 sox m start mp3 output mp3 我想知道如何仅使用一个命令来合并 3 或 4 个音频文件 而不是使用 output mp
  • #java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester

    我正进入 状态java lang NoClassDefFoundError org apache commons digester Digester错误 我被这个错误困扰了一个多月 我已经尝试了所有可用的 Digester 版本 并且还检查
  • 与 Tensorflow 中的常规 LSTMCell 相比,使用 CudnnLSTM 训练时的结果不同

    我正在 Python 中使用 Tensorflow 训练 LSTM 网络 并希望切换到 tf contrib cudnn rnn CudnnLSTM 以加快训练速度 我所做的被替换 cells tf nn rnn cell LSTMCell
  • Google 地图 -“除非更新 Google Play 服务,否则应用程序将无法运行”

    我只是想在这里运行简单的 Google 地图教程 https developers google com maps documentation android start 我正在 Nexus 4 上运行我的应用程序 并且收到带有 更新 按钮
  • Grafana划分2系列

    我试图将两个系列分开以获得它们的比率 例如 我的网站 a com b com c com 为 所有网站 他们每个人都有总部分数和发生错误的统计数据 我想将每个站点的错误 部分显示为条形错误 部分 其中部分 gt 错误到该站点的每个错误 在这
  • Python 正则表达式不工作

    我正在使用以下代码 downloadlink re findall http uploadir com u b str downloadhtml 但是 当我传递以下字符串时
  • 在 shell 脚本中调用 awk

    我有这个命令 如果直接在终端上运行 它可以正确执行 awk word print NR file txt head n 1 目的是找到单词所在行的行号 word 首先出现在file txt 但是当我把它放在脚本文件中时 它似乎不起作用 bi
  • 将 MediaWiki 站点迁移到 Windows Sharepoint Services Wiki

    有人找到了将 MediaWiki 页面迁移到 WSS Wiki 的方法吗 我们刚刚安装了 Sharepoint 2007 虽然它似乎满足了我们的需求 但它似乎不是 Microsoft 提供的任何用于将 MediaWiki 页面迁移到 WSS
  • 带有 Angular 的 ASP.NET MVC:- 页面刷新或重新加载会出现 404 错误

    角度版本 5 我正在使用 ASP NET MVC 开发一个新项目 并将 Angular 5 与其集成 该项目工作正常 只是页面刷新产生 404 页面未找到错误 每当我从浏览器点击刷新或重新加载页面时 都会出现 404 错误 我已经阅读了许多
  • 删除重复项,保留具有最大绝对值的条目

    假设我有四个样本 id 1 2 3 和 4 每个样本都有一个或多个测量值 gt a lt data frame id c 1 1 2 2 3 4 value c 1 2 3 4 5 6 gt a id value 1 1 1 2 1 2 3
  • ScreenUpdating = False 在 Excel 2013 和 2016 中失败

    我几年前开发的基于 Excel 的长期运行的高端应用程序在 Excel 2007 和 2010 中运行良好 在 Excel 2013 和 2016 中看起来就像业余时间 因为Application ScreenUpdating False不
  • Pandas 按组时间累积总和

    我有一个数据框 其中为每个 id 记录 1 个或多个事件 对于每个事件 都会记录 id 度量 x 和日期 像这样的东西 import pandas as pd import datetime as dt import numpy as np
  • 是否存在左关联前缀运算符或右关联后缀运算符之类的东西?

    这一页说 前缀运算符是usually右关联 后缀运算符左关联 强调我的 是否有左关联前缀运算符或右关联后缀运算符的真实示例 如果不是 那么假设的一个会是什么样子 以及如何解析它 使 左联想 和 右联想 的概念变得精确并不是特别容易 因为它们
  • Finalize方法中的异常[重复]

    这个问题在这里已经有答案了 可能的重复 方法终结和异常 垃圾收集器调用finalize 当对象即将从内存中释放时的方法 当异常发生时会发生什么finalize method GC 会继续进行并释放内存 还是 GC 将停止该对象的进程 如果异