溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java的運(yùn)行過程是怎樣的

發(fā)布時(shí)間:2022-01-11 14:20:49 來源:億速云 閱讀:108 作者:柒染 欄目:編程語言

這篇文章給大家介紹java的運(yùn)行過程是怎樣的,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

java的運(yùn)行流程

一,我們所看不到的:
1,如果java文件沒有package,就默認(rèn)給文件加上"無名"package;
2,默認(rèn)導(dǎo)入java.lang包,所以我們的java程序中可以使用Sting,Math,Integer等類,包括一些異常類;
3,如果生成的類沒有父類,則為這個(gè)類隱式加上父類:Object;因此,包括Object中的許多方法可以使用;
4,字段的初始化;
二,我們所看的到的:
既然看的到,就先看程序運(yùn)行結(jié)果:

public class JRun1 {

public JRun1() {
System.out.println(" 構(gòu)造函數(shù)");
}
static
{
System.out.println("static{}");
}
{
System.out.println("{}");
}

public static void main(String[] args) {
System.out.println("main()");
}

}
運(yùn)行結(jié)果:
static{}
main()


顯然,程序運(yùn)行時(shí),先運(yùn)行:
static
{
System.out.println("static{}");
}
再調(diào)用main();


注意: 我們可以得到一個(gè)副產(chǎn)品:不用main方法也能運(yùn)行的程序:
public class JRun1 {

static
{

System.out.println("no main()");
System.exit(0);
}

}


如果我們在類中建立一個(gè)對象:
public class JRun1 {


public JRun1() {
System.out.println(" 構(gòu)造函數(shù)");
}
static
{
System.out.println("static{}");

}
{
System.out.println("{}");
}

public static void main(String[] args) {
System.out.println("main()");
new JRun1();
}


}

運(yùn)行結(jié)果:
static{}
main()
{}
構(gòu)造函數(shù)

從而,我們得出:
建立一個(gè)非主類對象,順序?yàn)?靜態(tài)初始化塊static{}--&gt初始化塊{}--&gt構(gòu)造函數(shù)constructor;


那么,牽涉到繼承,運(yùn)行流程又如何?

看程序:

class JRun1Father{
JRun1Father(){
System.out.println("父類構(gòu)造函數(shù)");
}
static{
System.out.println("父類靜態(tài)初始化塊");
}
{
System.out.println("父類初始化塊");
}
}
public class JRun1 extends JRun1Father{


public JRun1() {
System.out.println("子類構(gòu)造函數(shù)");
}
static
{
System.out.println("子類靜態(tài)初始化塊");

}
{
System.out.println("子類初始化塊");
}

public static void main(String[] args) {
//System.out.println("主方法)");
new JRun1();
}

}

運(yùn)行結(jié)果:
父類靜態(tài)初始化塊
子類靜態(tài)初始化塊
父類初始化塊
父類構(gòu)造函數(shù)
子類初始化塊
子類構(gòu)造函數(shù)

所以,牽涉到父類:父靜態(tài)--&gt子靜態(tài)--&gt父初始化及構(gòu)造--&gt子初始化及構(gòu)造;
注意:初始化塊和構(gòu)造是接連運(yùn)行的,不會父類子類交替.

關(guān)于java的運(yùn)行過程是怎樣的就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI