当前位置: 首页 > 知识库问答 >
问题:

尽管Object#finalize()“不应该依赖”,但它有什么正确的用法吗?[副本]

段干麒
2023-03-14

自从在JDK1.0中引入Object#Finalize()之后,Java又推出了9个版本。

然而,尽管它有明显的缺点,但它仍然可用,即使在JDK10中也是如此。

这就引出了一个问题:这种方法是否有任何已知的正确用法?

共有1个答案

汪晨
2023-03-14

唯一的“元用法”可能是该API的示例状态:尽管已知并建议不要使用它,但它没有被删除。甚至在Java9之前不推荐使用。

您可能会把这个简单的方法看作是Java语言负责人非常不愿意破坏向后兼容性的证据。即使是没有人应该使用的方法!

所以,实际的答案是:不,没有。当然,你可以用这种方法做实验,在什么条件下它被调用,但是,你不能依赖研究的结果。

 类似资料:
  • 我是IntelliJ/静态编程语言的新手;在我的. kts文件中: 但是在我的Main.java, 它不识别导入的“redis”部分(“redis”是红色的,未解析的对 redis 的引用) 我做错了什么?

  • 当运行我的应用程序(Spring Boot 2.5.7)-更新到spring-data-r2dbc 1.3.7后,我得到了。 (我也在1.4.0中尝试过这一点,问题首先出现在1.3.7中。) 在这个spring-data-r2dbc版本中,对getColumnNames进行了更改(请参阅https://github.com/spring-projects/spring-data-r2dbc/iss

  • 问题内容: 今天,我实验室中的一个敏感操作完全出错。电子显微镜上的执行器越过边界,经过一连串的事件,我损失了1200万美元的设备。我将有故障的模块中的超过40K行缩小为: 我得到的一些输出示例: 由于这里没有任何浮点算法,而且我们都知道有符号整数在Java中的溢出情况下表现良好,因此我认为这段代码没有错。但是,尽管输出表明程序未达到退出条件,但程序仍达到了退出条件(是否达到 和 未达到?)。为什么

  • 上下文:我的数据库中有两个不同的表。第一个是actionblock(Java中的actionblock),第二个是location(Java中的PermanentLocation)。ActionBlock类需要一个位置才能工作,因此为了让代码工作,它首先加载ActionBlock数据,其中包含所需的位置,然后代码加载所需的位置。(是的,我知道下面的代码将垃圾邮件加载位置查询) 问题:使用与Acti

  • 今天我实验室的一个敏感操作完全出了问题。一台电子显微镜上的一个致动器越过了它的边界,在一系列事件之后,我损失了1200万美元的设备。我将故障模块中的40K行缩小到以下范围: 我得到的一些输出示例: 因为这里没有任何浮点运算,而且我们都知道有符号整数在Java溢出时表现良好,所以我认为这段代码没有问题。然而,尽管输出表明程序没有达到退出条件,但它却达到了退出条件(既达到了又没有达到?)。为什么? 我

  • 问题内容: 我需要导入课程。包含在Maven项目中的正确依赖项是什么?我正在尝试,但是没有运气(这是pom,而不是jar)。 ps。到目前为止,我发现的唯一解决方法是:(来自Maven Central)。 问题答案: 在ActiveMQ以及Qpid JMS等其他项目中,我们从Apache Geronimo JAR引入了JMS规范类,在此依赖项中提供了1.1 API: 对于JMS 2 API,您需要