请问在java在如何关闭java自己启动的程序呢?

请问在java在如何关闭java自己启动的程序呢?,第1张

分类: 电脑/网络 >>软件

问题描述:

请问在java在如何关闭java自己启动的程序呢?

解析:

我详细说一下吧

java程序启动之后,JVM(java虚拟机)会实例化一个Runtime类,这是一个运行时类实例,包含这个java程序运行的所有信息,一个程序会实例化一个Runtime类且只能实例化一个Runtime类。我们可以通过这个Runtime类实例 *** 作程序的运行。它的exit(int status)方法会终止程序的运行。例:

Runtime.getRuntime().exit(0)

其中参数status表示状态,0表示正常退出,非0表示异常退出。非0参数有什么用呢?

addShutdownHook(Thread hook)方法可以将一个Thread可程序的关闭hook(挂/联系)起来,程序退出前,会执行这个方法,这样我们可以根据退出状态作相应的善携穗后 *** 作。

另外,System.exit(int status)也是调用这个Runtime类实例的退出方法来间接实现程序的退出的。

再加一点,Runtime类可以创建子进程,如下:

Process p=Runtime.getRuntime().exec("notepad")

这腔隐游个语句将会创建一个记事本程序(它是Runtime类创建的伍销子进程)

p.destroy()

这个语句终止刚才创建的子进程。

return语句和其他控制结束语句的区别

Java中结束语句主要有四类:return,break,continue以及goto。但是goto不常用,所有此文不对此讨论。

(1)return语句:是指结束该方法,继续执行方法后的语句。

(2)break语句:是指在循环中直接退出循环语句(for,while,do-while,foreach),break之后的循环体里面的语句也执行。

(3)continue语句:是指在循环中中断该次循环语句(for,while,do-while,foreach),本次循环体中的continue之后语句不执行,直接跳到下次循环。

return在try-catch-finally语句中的使用

若在 try或改慎搏catch语句里面有return语句,finally语句和return语句的执行顺序问题:

若有finally语句,则无论如何,都会执行该语句,在try或catch中的return语句会将它的返回值压入栈内,然后执行finally语句,当finally执行完成后,若finally语句里有return语句,则执行return语句并结束。若finally没有return语句,则返回被保存的栈里的return语句,再执行。然而,在压栈时候,要注意压入栈内的是什么东西,是值本身还是引用,若是引用则引用的值会改变核祥,若是变量值,则不会改变。

下面是一位大牛分析的,很给力,孝察大家一定要仔细看下:finally小特性。

return语句在try-catch-finally中使用情形:

(1)若try执行成功后返回,在try和catch里面都执行return语句,这样情况与4相同,但该方法更佳,因为,可以立刻查看出异常的抛出情况。

(2)若只需要在try和catch都执行后还需继续执行相关语句,则在try-catch所有语句后执行return语句;

(3)若catch执行后返回,则在catch和所有语句后执行return语句;

(4)若try执行成功后返回,则在try和全部语句后使用return语句;

java中exit表示的关闭JVM程序,但是不释放内存,举例:

System.exit(0)//表示正常程序的关闭,执行的亮迅是以下 *** 作:

public static void exit(int status) {

Runtime.getRuntime().exit(status)

}

备握键老注:如果是 0表示正常关闭,如果是非0表示异常关闭,如果想释放内存的话,用“dispose()”关闭当前程序,并释放段升资源。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12299883.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存