程序结束的几种情况如下:
主线程执行完成
如果程序的 主线程(即 main() 方法所在的线程)执行完毕,且没有其他非守护线程在运行,程序就会结束。
调用 System.exit(int status) 方法
调用 System.exit(int status)方法可以强制结束程序。其中,参数 `status` 为 0 表示正常退出,非 0 表示异常退出。
所有非守护线程结束
当程序中的所有非守护线程(非 Daemon 线程)都结束时,程序也会自动退出。
用户操作
在某些情况下,用户可以通过操作界面结束单个程序,例如在 Windows 系统中,可以使用快捷键 ALT+F4来尝试结束当前运行的程序。
法律程序
强制执行程序可能在以下情况下结束:
被执行人完全履行了法院判决书中所规定的所有义务。
用于执行的法律文件被司法部门正式宣布作废。
申请人主动提出撤销申请。
被执行人去世且没有任何遗产可供执行,也没有义务承担人。
追讨赡养费、抚养费和教育费用的权利人离世。
作为被执行人的企业法人或其他组织被撤销、注销、吊销营业执照或歇业,既没有任何财产可以用来执行,也没有义务承担者,并且无法通过合法途径增加或变更执行主体。
特殊情况下
强制执行过程通常在六个月内宣告结束,但在特殊情况下,如被执行者无法提供足够的可执行财力,法院有权中止执行程序,直到发现被执行者拥有可供执行的财产。
总结来说,程序结束的情况主要取决于程序本身的执行逻辑、用户操作以及法律程序的相关规定。在大多数情况下,主线程执行完毕或调用 System.exit() 方法是常见的结束程序的方式。在法律程序中,则可能涉及更多复杂的条件和程序。