java對(duì)象的初始化發(fā)生在兩個(gè)階段:創(chuàng)建類的對(duì)象和創(chuàng)建類的實(shí)例。在命令行輸入“java類名” 命令后,JVM被啟動(dòng),進(jìn)入類加載階段。(1)JVM首先裝載又類名指定的類,如果發(fā)現(xiàn)extends關(guān)鍵字,遞歸載入父類,找到Object類,以創(chuàng)建類的對(duì)象。(2)按照“先基類后派生類”的順序依次初始化靜態(tài)成員變量和靜態(tài)塊。接下來(lái)程序的主流程轉(zhuǎn)到main放法,等待靜態(tài)方法的調(diào)用或創(chuàng)建類的實(shí)例,以便調(diào)用非靜態(tài)方法。當(dāng)創(chuàng)建一個(gè)類的實(shí)例時(shí),要在堆中分配足夠的空間以容納實(shí)例并且將其值清零(初始化),過(guò)程如下: ------ 1.按照“又派生類到基類”的順序依次綁定構(gòu)造方法的參數(shù)。 -------2.再按照“先基類后派生類”的順序:先完成基類的定義,初始化非靜態(tài)成員變量和非靜態(tài)塊,然后執(zhí)行基類的構(gòu)造方法體;接下來(lái)在完成派生類的定義,初始化非靜態(tài)成員變量和非靜態(tài)塊,然后執(zhí)行派生類的構(gòu)造方法體。-----------------------------------------------------上面就是執(zhí)行main方法前程序的執(zhí)行順序,最好記住,當(dāng)然能理解最好。到了main方法后就簡(jiǎn)單了,程序會(huì)按照你的書寫順序執(zhí)行。最重要的是最上面的,那是重中之重。----------------------------------打那么多字還真累。呵呵
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供龍門網(wǎng)站建設(shè)、龍門做網(wǎng)站、龍門網(wǎng)站設(shè)計(jì)、龍門網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、龍門企業(yè)網(wǎng)站模板建站服務(wù),十多年龍門做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
因?yàn)樵趍ain方法里面語(yǔ)句是順序執(zhí)行
當(dāng)語(yǔ)句執(zhí)行到if(1+1==2)時(shí),判斷if()括號(hào)里面的條件是否為正確的,此時(shí)1+1就是等于2
條件正確,則順序執(zhí)行if里面的語(yǔ)句
則會(huì)輸出12345和充值成功。
但是你的第一個(gè)語(yǔ)句的print的是err,是輸出錯(cuò)誤語(yǔ)句,他并不遵循順序輸出
你只要把第一個(gè)語(yǔ)句改為System.out.print(isname(''1231'');就可以了。
先后順序如下!
1.靜態(tài)塊
2.塊
3.構(gòu)造器
4.父類構(gòu)造器
運(yùn)行順序?yàn)椋?/p>
1. 靜態(tài)塊
2. 父類構(gòu)造器
3. 本類中的塊
4. 本類的構(gòu)造器
先說(shuō)執(zhí)行順序:我們?cè)趎ew一個(gè)對(duì)象時(shí),如果類還沒加載,就需要先將類加載到內(nèi)存,此時(shí)就會(huì)執(zhí)行靜態(tài)代碼塊,在創(chuàng)建對(duì)象時(shí),是先執(zhí)行代碼塊,然后執(zhí)行構(gòu)造器。所以靜態(tài)代碼塊、代碼塊、構(gòu)造器的執(zhí)行順序是:靜態(tài)代碼塊→代碼塊→構(gòu)造器。
再說(shuō)作用:靜態(tài)代碼塊是用于初始化類的(在加載類時(shí)執(zhí)行,只執(zhí)行一次),代碼塊是用于初始化對(duì)象的(在創(chuàng)建對(duì)象時(shí)執(zhí)行,每次創(chuàng)建對(duì)象時(shí)都執(zhí)行),構(gòu)造器是用于創(chuàng)建對(duì)象的。
在java應(yīng)用程序中,main()方法是程序的入口,最先執(zhí)行!
但是在Applet程序中是沒main()方法的,init()方法會(huì)自動(dòng)執(zhí)行!誰(shuí)先誰(shuí)后,自己清楚了吧!