﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-在水一方-随笔分类-基础至上</title><link>http://www.blogjava.net/xlwei/category/36193.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 24 Nov 2008 09:03:06 GMT</lastBuildDate><pubDate>Mon, 24 Nov 2008 09:03:06 GMT</pubDate><ttl>60</ttl><item><title>System.exit(int) VS return</title><link>http://www.blogjava.net/xlwei/archive/2008/11/23/242076.html</link><dc:creator>谢良威</dc:creator><author>谢良威</author><pubDate>Sun, 23 Nov 2008 02:04:00 GMT</pubDate><guid>http://www.blogjava.net/xlwei/archive/2008/11/23/242076.html</guid><wfw:comment>http://www.blogjava.net/xlwei/comments/242076.html</wfw:comment><comments>http://www.blogjava.net/xlwei/archive/2008/11/23/242076.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlwei/comments/commentRss/242076.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlwei/services/trackbacks/242076.html</trackback:ping><description><![CDATA[<p style><span style="color: #ff0000"><strong>&#160;System.exit(int status)</strong></span><br />
<br />
public static void exit(int status)<br />
终止当前正在运行的 Java 虚拟机。参数用作状态码；根据惯例，非零的状态码表示异常终止。&#160;<br />
<br />
该方法调用 Runtime 类中的 exit 方法。该方法永远不会正常返回。&#160;<br />
<br />
调用 System.exit(n) 实际上等效于调用：&#160;<br />
<strong><span style="color: #ff0000">Runtime.getRuntime().exit(n)</span></strong><br />
<br />
<br />
参数：<br />
status - 退出状态。<br />
抛出：&#160;<br />
SecurityException - 如果安全管理器存在并且其 checkExit 方法不允许以指定状态退出<br />
<br />
Runtime.exit(int status)<br />
通过启动虚拟机的关闭序列，终止当前正在运行的 Java 虚拟机。此方法从不正常返回。可以将变量作为一个状态码；根据惯例，非零的状态码表示非正常终止。&#160;<br />
<br />
虚拟机的关闭序列包含两个阶段。在第一个阶段中，会以某种未指定的顺序启动所有已注册的关闭挂钩（如果有的话），并且允许它们同时运行直至结束。在第二个阶段中，如果已启用退出终结，则运行所有未调用的终结方法。一旦完成这个阶段，虚拟机就会暂停。&#160;<br />
<br />
如果在虚拟机已开始其关闭序列后才调用此方法，那么若正在运行关闭挂钩，则将无限期地阻断此方法。如果已经运行完关闭挂钩，并且已启用退出终结 (on-exit finalization)，那么此方法将利用给定的状态码（如果状态码是非零值）暂停虚拟机；否则将无限期地阻断虚拟机。&#160;<br />
<br />
System.exit 方法是调用此方法的一种传统而便捷的方式。&#160;<br />
<br />
<br />
参数：<br />
status - 终止状态。按照惯例，非零的状态码表明非正常终止。&#160;<br />
抛出：&#160;<br />
SecurityException - 如果安全管理器存在，并且其 checkExit 方法不允许存在指定的状态
<p><br />
<br />
<br />
<span style="color: #ff0000"><strong>&#160;Java中的return语句使用总结（来源：</strong></span><span style="color: #ff0000"><span style="color: #ff0000">http://lavasoft.blog.51cto.com/62575/5325</span><span style="color: #ff0000">1</span></span><span style="color: #ff0000"><strong>）</strong></span></p>
<p><br />
Java中的return语句总是和方法有密切关系，return语句总是用在方法中，有两个作用，一个是返回方法指定类型的值（这个值总是确定的），一个是结束方法的执行（仅仅一个return语句）。<br />
<br />
在return语句的各类文章中，大多仅仅介绍了return语句用于有返回值（非void返回值）的方法中。而很少或没有介绍return语句在vodi返回值方法中的运用。<br />
<br />
return语句用在非void返回值类型的方法中，不但能返回基本类型，还可以返回（包括用户自定义类的）对象。<br />
<br />
下面通过一个简单例子说明一下：<br />
<br />
</p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&#160;Test<br />
{<br />
</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&#160;</span><span style="color: #0000FF; ">static</span><span style="color: #000000; ">&#160;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&#160;main(String[]&#160;args)<br />
{<br />
Test&#160;t&#160;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&#160;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&#160;Test();<br />
t.NonReturnMethod();<br />
t.ReturnStringMethod();<br />
}<br />
<br />
</span><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />
无返回值类型的return语句测试<br />
</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />
</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&#160;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&#160;NonReturnMethod()<br />
{<br />
System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">---------无返回值类型的return语句测试--------</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />
</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&#160;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />
{<br />
</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">4</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&#160;i)<br />
</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">;<br />
System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">i=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">i);<br />
}<br />
}<br />
<br />
</span><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />
有返回值类型的return语句测试<br />
</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />
</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&#160;String&#160;ReturnStringMethod()<br />
{<br />
System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">---------有返回值类型的return语句测试--------</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />
</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">这是返回的字符串</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />
}<br />
}</span></div>
<br />
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; "><br />
运行结果：<br />
</span><span style="color: #000000; ">---------</span><span style="color: #000000; ">无返回值类型的return语句测试</span><span style="color: #000000; ">--------</span><span style="color: #000000; ">&#160;<br />
i&#160;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&#160;<br />
i&#160;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">2</span><span style="color: #000000; ">&#160;<br />
i&#160;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&#160;</span><span style="color: #000000; ">3</span><span style="color: #000000; ">&#160;<br />
</span><span style="color: #000000; ">---------</span><span style="color: #000000; ">有返回值类型的return语句测试</span><span style="color: #000000; ">--------</span><span style="color: #000000; ">&#160;</span></div>
<br />
<br />
<br />
<span style="color: #ff0000">总结：</span><br />
1.System.exit(status)是中止当前虚拟机的运行，即强制性的退出程序；<br />
2.return只是退出函数，或是返回方法指定的类型<br />
<br />
<br />
<img src ="http://www.blogjava.net/xlwei/aggbug/242076.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlwei/" target="_blank">谢良威</a> 2008-11-23 10:04 <a href="http://www.blogjava.net/xlwei/archive/2008/11/23/242076.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>