finally语句块在什么情况下不会执行
1、先创建一个正规的try与finally语句块正常运行是会运行finally的,如图


2、现在在try语句块在加上System.exit(1)这句话意指终止当前虚拟机,如图

3、在运行代码可以看到控制台没有输出finally语句块中的内容,说明终止虚拟机就不会只finally语句了,如图

4、在创建一个关于守护线程带非守护线程的方法,这里实现的是守护线程比非守护线程晚结束,非守护线程的finally会被执行,如图


5、如果把守护线程成修改成非守护线程早执行结束,如图

6、再次执行会发现非守护线程的finally语句也是不执行的,如图
