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

      <small id="aebxz"><menu id="aebxz"></menu></small>
    1. Java中的繼承與靜態(tài)static等的執(zhí)行先后順序的面試題

      時(shí)間: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就是在類被第一次加載的時(shí)候執(zhí)行,以后就不再執(zhí)行。

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

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

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

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

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

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

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

      11.實(shí)例化Z之前,還得先實(shí)例化X對吧。因?yàn)樽宇惖臉?gòu)造方法都會調(diào)用父類的構(gòu)造方法。

      12.那就先實(shí)例化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");


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

      tttt
      tt
      Y
      X
      Y
      Z

      記住,面試有可能會標(biāo)出一些語句的,讓你選擇這些語句的執(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