久久综合丝袜日本网手机版,日韩欧美中文字幕在线三区,亚洲精品国产品国语在线,极品在线观看视频婷婷

      • 阿里巴巴程序筆試題及答案

        時間:2022-06-25 03:04:46 筆試 我要投稿
        • 相關(guān)推薦

        阿里巴巴程序筆試題及答案

          【問題】如果類A和類B中有靜態(tài)變量,靜態(tài)語句塊,非靜態(tài)變量,非靜態(tài)語句塊,構(gòu)造函數(shù),靜態(tài)方法,非靜態(tài)方法,同時類A繼承類B,請問當(dāng)實例化A時,類內(nèi)部的加載順序是什么?

        阿里巴巴程序筆試題及答案

          【解析】測試代碼如下:

          Class B:

          public class B{//靜態(tài)變量static int i=1;//靜態(tài)語句塊static {System.out.println("Class B1:static blocks"+i);}//非靜態(tài)變量int j=1;//靜態(tài)語句塊static{i++;System.out.println("Class B2:static blocks"+i);}//構(gòu)造函數(shù)public B(){i++;j++;System.out.println("constructor B: "+"i="+i+",j="+j);}//非靜態(tài)語句塊{ i++; j++; System.out.println("Class B:common blocks"+"i="+i+",j="+j);}//非靜態(tài)方法public void bDisplay(){i++;System.out.println("Class B:static void bDisplay():"+"i="+i+",j="+j);return ;}//靜態(tài)方法public static void bTest(){i++;System.out.println("Class B:static void bTest():"+"i="+i);return ;}}

          Class A:

          public class A extends B{//靜態(tài)變量static int i=1;//靜態(tài)語句塊static {System.out.println("Class A1:static blocks"+i);}//非靜態(tài)變量int j=1;//靜態(tài)語句塊static{i++;System.out.println("Class A2:static blocks"+i);}//構(gòu)造函數(shù)public A(){ super();i++;j++;System.out.println("constructor A: "+"i="+i+",j="+j);}//非靜態(tài)語句塊{ i++; j++; System.out.println("Class A:common blocks"+"i="+i+",j="+j);}//非靜態(tài)方法public void aDisplay(){i++;System.out.println("Class A:static void aDisplay():"+"i="+i+",j="+j);return ;}//靜態(tài)方法public static void aTest(){i++;System.out.println("Class A:static void aTest():"+"i="+i);return ;}}

          Class ClassLoading :

          public class ClassLoading {public static void main (String args[]) {A a=new A();a.aDisplay();}}

          程序運行結(jié)果如圖:

          通過上述示圖,我們可以比較清晰的看出java類的整個加載過程:

          1.若要加載類A,則先加載執(zhí)行其父類B(Object)的靜態(tài)變量以及靜態(tài)語句塊(執(zhí)行先后順序按排列的先后順序)。

          2.然后再加載執(zhí)行類A的靜態(tài)變量以及靜態(tài)語句塊。(并且1、2步驟只會執(zhí)行1次)

          3.若需實例化類A,則先調(diào)用其父類B的構(gòu)造函數(shù),并且在調(diào)用其父類B的構(gòu)造函數(shù)前,依次先調(diào)用父類B中的非靜態(tài)變量及非靜態(tài)語句塊.最后再調(diào)用父類B中的構(gòu)造函數(shù)初始化。

          4.然后再依次調(diào)用類A中的非靜態(tài)變量及非靜態(tài)語句塊.最后調(diào)用A中的構(gòu)造函數(shù)初始化。( 并且3、4步驟可以重復(fù)執(zhí)行)

          5.而對于靜態(tài)方法和非靜態(tài)方法都是被動調(diào)用,即系統(tǒng)不會自動調(diào)用執(zhí)行,所以用戶沒有調(diào)用時都不執(zhí)行,主要區(qū)別在于靜態(tài)方法可以直接用類名直接調(diào)用(實例化對象也可以),而非靜態(tài)方法只能先實例化對象后才能調(diào)用。

        【阿里巴巴程序筆試題及答案】相關(guān)文章:

        32道java程序員面試題及答案07-13

        阿里巴巴 java 面試題06-28

        c語言試題及答案07-03

        唐宋文學(xué)試題及答案06-28

        華為筆試題硬件筆經(jīng)07-11

        阿里巴巴實習(xí)生面試題07-04

        誰有比較全面的Java程序員面試題(附答案)?07-13

        程序員面試題精選07-12

        消防考試試題與答案11-12

        dba面試題及答案06-28