示例如下:
package shutdownHookDemo; public class Demo { public static void main(String[] args) { System.out.println("hello world"); Runtime.getRuntime().addShutdownHook(new Thread(){ @Override public void run() { System.out.println("程序退出了"); } }); } }
打印结果如下:
hello world 程序退出了
addShutdownHook API的作用:
- JDK中的注释:Registers a new virtual-machine shutdown hook。 注册一个虚拟机关闭的钩子,即虚拟机关闭时(main方法执行完毕)会调用传入的新线程的run方法。
- 实际应用中,当我们的程序正常或者异常退出时,如果我们要做一些收尾工作,比如关闭某些资源、记录某些日志,都可以写在addShutdownHook中。