System.exit(-1)終止當(dāng)前正在運(yùn)行的 Java 虛擬機(jī),退出程序。
定制網(wǎng)站制作可以根據(jù)自己的需求進(jìn)行定制,網(wǎng)站制作、網(wǎng)站建設(shè)構(gòu)思過程中功能建設(shè)理應(yīng)排到主要部位公司網(wǎng)站制作、網(wǎng)站建設(shè)的運(yùn)用實(shí)際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實(shí)際意義
其中參數(shù)按照慣例,是用非零的參數(shù)碼表示異常終止。
在java程序中,可以使用java.lang.System的exit方法來終止程序的執(zhí)行,
12345678
public static void main(String[] args) { System.out.println("開始進(jìn)入程序..."); //do something System.out.println("程序準(zhǔn)備退出了!"); System.exit(0); //下面這句話將不會(huì)打印出來 System.out.println("程序已經(jīng)退出了!");}
但是使用exit方法的本質(zhì)是終止了JVM的運(yùn)行,如果同時(shí)運(yùn)行了另外一個(gè)程序,使用exit方法同樣也會(huì)使該程序也終止,要避免此種情況可以使用interrupt()來中斷退出一個(gè)獨(dú)立運(yùn)行的過程。對(duì)于多線程程序,必須要關(guān)閉各個(gè)非守護(hù)線程。
1234567891011121314151617181920212223
public static void main(String[] args) { System.out.println("開始進(jìn)入程序..."); //do something new Thread(){ public void run() { while (true) { System.out.println("我是另外的線程..."); try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }.start(); //獲取man線程 Thread main = Thread.currentThread(); System.out.println(main.getName()); main.interrupt(); System.out.println("main線程已經(jīng)退出了,但是不影響其他線程運(yùn)行!"); }
只有在程序非正常退出時(shí),才使用exit方法退出程序。
CS結(jié)構(gòu)系統(tǒng)的退出如下:public void init() {
this.setTitle("用戶登錄界面");
this.add(createCenterPane());
this.setDefaultCloseOperation(this.DO_NOTHING_ON_CLOSE);
this.setSize(new Dimension(450, 335));
this.setLocationRelativeTo(null);
// this.setVisible(true);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
int choose = JOptionPane.showConfirmDialog(null, "是否要退出登錄界面?",
"系統(tǒng)提示:", JOptionPane.YES_NO_OPTION);
if (choose == JOptionPane.YES_OPTION) {
System.exit(1);
}
}
});
}其中this為JFrame對(duì)象。BS結(jié)構(gòu)的退出直接用windows.close()方法就行了!
return語句和其他控制結(jié)束語句的區(qū)別
Java中結(jié)束語句主要有四類:return,break,continue以及goto。但是goto不常用,所有此文不對(duì)此討論。
(1)return語句:是指結(jié)束該方法,繼續(xù)執(zhí)行方法后的語句。
(2)break語句:是指在循環(huán)中直接退出循環(huán)語句(for,while,do-while,foreach),break之后的循環(huán)體里面的語句也執(zhí)行。
(3)continue語句:是指在循環(huán)中中斷該次循環(huán)語句(for,while,do-while,foreach),本次循環(huán)體中的continue之后語句不執(zhí)行,直接跳到下次循環(huán)。
return在try-catch-finally語句中的使用
若在 try或catch語句里面有return語句,finally語句和return語句的執(zhí)行順序問題:
若有finally語句,則無論如何,都會(huì)執(zhí)行該語句,在try或catch中的return語句會(huì)將它的返回值壓入棧內(nèi),然后執(zhí)行finally語句,當(dāng)finally執(zhí)行完成后,若finally語句里有return語句,則執(zhí)行return語句并結(jié)束。若finally沒有return語句,則返回被保存的棧里的return語句,再執(zhí)行。然而,在壓棧時(shí)候,要注意壓入棧內(nèi)的是什么東西,是值本身還是引用,若是引用則引用的值會(huì)改變,若是變量值,則不會(huì)改變。
下面是一位大牛分析的,很給力,大家一定要仔細(xì)看下:finally小特性。
return語句在try-catch-finally中使用情形:
(1)若try執(zhí)行成功后返回,在try和catch里面都執(zhí)行return語句,這樣情況與4相同,但該方法更佳,因?yàn)?,可以立刻查看出異常的拋出情況。
(2)若只需要在try和catch都執(zhí)行后還需繼續(xù)執(zhí)行相關(guān)語句,則在try-catch所有語句后執(zhí)行return語句;
(3)若catch執(zhí)行后返回,則在catch和所有語句后執(zhí)行return語句;
(4)若try執(zhí)行成功后返回,則在try和全部語句后使用return語句;