Java中是否有用于静态初始值设定项的oposite工具

Java中是否有用于静态初始值设定项的oposite工具,java,Java,静态块在类加载时执行,甚至在公共静态void main启动之前。是否有可能在程序关闭前运行某个代码 我想你在找。它不像静态初始值设定项块那样是一种语言级构造,但我认为它可以满足您的需要 但是,您应该小心使用关机挂钩-有关它们的各种警告,请参阅文档。来自:- 只是想给Jon Skeets的答案增加一点 关闭挂钩只是一个初始化但未启动的线程。什么时候 虚拟机开始其关闭序列,它将启动所有 以某种未指定的顺序注册关闭挂钩,并让它们运行 同时当所有钩子都完成后,它将运行所有钩子 如果已启用退出时的终结,则

静态块在类加载时执行,甚至在
公共静态void main
启动之前。是否有可能在程序关闭前运行某个代码

我想你在找。它不像静态初始值设定项块那样是一种语言级构造,但我认为它可以满足您的需要

但是,您应该小心使用关机挂钩-有关它们的各种警告,请参阅文档。

来自:-

只是想给Jon Skeets的答案增加一点

关闭挂钩只是一个初始化但未启动的线程。什么时候 虚拟机开始其关闭序列,它将启动所有 以某种未指定的顺序注册关闭挂钩,并让它们运行 同时当所有钩子都完成后,它将运行所有钩子 如果已启用退出时的终结,则取消调用终结器。 最后,虚拟机将停止。请注意,守护进程线程将 在关闭序列期间继续运行,非守护进程也将继续运行 如果关闭是通过调用exit方法启动的,则为线程

在极少数情况下,虚拟机可能会中止,即停止 在没有完全关闭的情况下运行。当虚拟机 机器在外部终止,例如使用SIGKILL信号 在Unix上或Microsoft Windows上的TerminateProcess调用。虚拟的 如果本机方法出错,计算机也可能会中止,例如, 损坏内部数据结构或试图访问 不存在的记忆。如果虚拟机中止,则不保证 可以确定是否将运行任何关机挂钩


请注意:静态初始值设定项实际上是
static{…}
块,在加载类时执行。