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

      • Java中的繼承與靜態(tài)static等的執(zhí)行先后順序的面試題

        時間:2022-07-13 16:51:30 面試 我要投稿
        • 相關(guān)推薦

        Java中的繼承與靜態(tài)static等的執(zhí)行先后順序的面試題

        繼承與static

        Java中的繼承與靜態(tài)static等的執(zhí)行先后順序的面試題

        面試題目如下:請寫出程序執(zhí)行完成之后的結(jié)果。

        package extend;

        public class X {
        Y y=new Y();
        static{
        System.out.println("tttt");
        }
        X(){
        System.out.println("X");
        }

        public static void main(String[] args) {
        new Z();

        }
        }

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

        class Z extends X{
        Y y=new Y();
        static{
        System.out.println("tt");
        }
        Z(){
        System.out.println("Z");
        }
        }

        先不告訴最后結(jié)果,我們先來分析下。一步一步推出結(jié)果。

        1.首先分析一段程序的執(zhí)行后的結(jié)果,我們得先找到程序的入口,然后才能著手分析。

        也就是main()方法。

        2.我們發(fā)現(xiàn)main()方法在X類中,要執(zhí)行main()方法,還得先將X類加載到內(nèi)存中。

        3.X類加載完成后,會做什么事情呢?別急,先來看看static的作用,不知道吧。告訴你:static就是在類被第一次加載的時候執(zhí)行,以后就不再執(zhí)行。

        4.知道了static的作用,那么X類被加載,那么就會先執(zhí)行X類的靜態(tài)屬性和靜態(tài)語句塊(static),執(zhí)行先后順序看誰在前面就先執(zhí)行誰。只在此時執(zhí)行,以后都不會。

        5.所以一個輸出結(jié)果為tttt,沒問題了吧。

        6.X類的static語句塊執(zhí)行完了,就該執(zhí)行main()方法啦。

        7.new Z();此方法被執(zhí)行。

        8.既然new Z();那么Z類就要被加載。因為Z類繼承X類。所以必須先加載X類才行。因為X類已經(jīng)被加載。所以此時不用再加載X類了。Z類加載好了就要執(zhí)行Z類的static語句塊

        9.那么就會打印出tt了吧。

        10.都加在完后就要實例化對象了。

        11.實例化Z之前,還得先實例化X對吧。因為子類的構(gòu)造方法都會調(diào)用父類的構(gòu)造方法。

        12.那就先實例化X類吧。

        13.執(zhí)行X方法前還得先初始化對不。也就是獲取所有屬性。那么X類的屬性Y就會獲取。

        14.即X類的Y y=new Y();要被執(zhí)行。也就是會打印Y。

        15.接著執(zhí)行System.out.println("X");
        16.然后就是執(zhí)行Z的構(gòu)造方法

        17.同樣先獲取Z的屬性Y y=new Y();打印Y。

        18.再執(zhí)行System.out.println("Z");


        整個過程就是這樣了,F(xiàn)在知道結(jié)果了吧:

        tttt
        tt
        Y
        X
        Y
        Z

        記住,面試有可能會標出一些語句的,讓你選擇這些語句的執(zhí)行順序。不過只要知道原理,就沒什么難的了。

        【Java中的繼承與靜態(tài)static等的執(zhí)行先后順序的面試題】相關(guān)文章:

        Java面試題07-12

        JAVA題庫:JAVA面試題目整理07-11

        java面試題五07-11

        java 基礎(chǔ)面試題07-11

        華為Java面試題07-11

        華為的JAVA面試題07-11

        求java面試題07-11

        華為公司 java人員面試題07-11

        一道Java面試題,題目如下07-11

        經(jīng)典Java面試題(絕版搞笑)篇,你笑了嗎?07-12