Runtime.getRuntime().addShutdownHook()

示例如下:

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中。


原文地址:https://www.cnblogs.com/silenceshining/p/14965172.html