关于java的System.exit(0);方法的一点理解上的疑问
查看JDK,发现是这样解释的:publicstaticvoidexit(intstatus)终止当前正在运行的Java虚拟机。参数用作状态码;根据惯例,非0的状态码表示异...
查看JDK,发现是这样解释的:public static void exit(int status)
终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
JVM就这样被终止了?但是其他java程序依然可以正常运行啊,那说明JVM还在的,那为什么说终止当前运行的虚拟机?
是不是应该这样理解,每启动一个java程序就相当于启动了一个JVM?这里的JVM就理解为java应用程序,而所有的java应用程序都是运行在JRE中的,只要JRE没有被关闭,那么所有的java程序就是可以照常运行的?
请指正,非常感谢。 展开
终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
JVM就这样被终止了?但是其他java程序依然可以正常运行啊,那说明JVM还在的,那为什么说终止当前运行的虚拟机?
是不是应该这样理解,每启动一个java程序就相当于启动了一个JVM?这里的JVM就理解为java应用程序,而所有的java应用程序都是运行在JRE中的,只要JRE没有被关闭,那么所有的java程序就是可以照常运行的?
请指正,非常感谢。 展开
3个回答
展开全部
JVM是一个普通的程序,比如在win32下,就是一个普通的win32应用程序,每次启动一个java程序时,其实是启动了一个javaw.exe进程,即JVM,JVM解释你的java程序并执行然后产生结果
System.exit(0)其实就是给解释并运行这个java程序的JVM发一个信号,表示这个进程该结束了,JVM会把0返回给操作系统。
以上是我从书上了解的,下面的是我自己的理解:
楼主说的JRE其实就是JVM,每个JVM之间是互不影响的(当然是一般情况下),所以说一个java程序的System.exit(0)不会对其他的JVM产生影响。
System.exit(0)其实就是给解释并运行这个java程序的JVM发一个信号,表示这个进程该结束了,JVM会把0返回给操作系统。
以上是我从书上了解的,下面的是我自己的理解:
楼主说的JRE其实就是JVM,每个JVM之间是互不影响的(当然是一般情况下),所以说一个java程序的System.exit(0)不会对其他的JVM产生影响。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
运行。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询