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

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

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

      【問題】如果類A和類B中有靜態變量,靜態語句塊,非靜態變量,非靜態語句塊,構造函數,靜態方法,非靜態方法,同時類A繼承類B,請問當實例化A時,類內部的加載順序是什么?

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

      【解析】測試代碼如下:

      Class B:

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

      Class A:

      public class A extends B{//靜態變量static int i=1;//靜態語句塊static {System.out.println("Class A1:static blocks"+i);}//非靜態變量int j=1;//靜態語句塊static{i++;System.out.println("Class A2:static blocks"+i);}//構造函數public A(){ super();i++;j++;System.out.println("constructor A: "+"i="+i+",j="+j);}//非靜態語句塊{ i++; j++; System.out.println("Class A:common blocks"+"i="+i+",j="+j);}//非靜態方法public void aDisplay(){i++;System.out.println("Class A:static void aDisplay():"+"i="+i+",j="+j);return ;}//靜態方法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();}}

      程序運行結果如圖:

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

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

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

      3.若需實例化類A,則先調用其父類B的構造函數,并且在調用其父類B的構造函數前,依次先調用父類B中的非靜態變量及非靜態語句塊.最后再調用父類B中的構造函數初始化。

      4.然后再依次調用類A中的非靜態變量及非靜態語句塊.最后調用A中的構造函數初始化。( 并且3、4步驟可以重復執行)

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

    【阿里巴巴程序筆試題及答案】相關文章:

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

    阿里巴巴 java 面試題06-28

    c語言試題及答案07-03

    唐宋文學試題及答案06-28

    華為筆試題硬件筆經07-11

    阿里巴巴實習生面試題07-04

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

    程序員面試題精選07-12

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

    dba面試題及答案06-28

    黄频国产免费高清视频_富二代精品短视频在线_免费一级无码婬片aa_精品9E精品视频在线观看