亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java程序初始化順序是怎么樣的

發布時間:2022-01-13 12:52:31 來源:億速云 閱讀:156 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“Java程序初始化順序是怎么樣的”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Java程序初始化順序是怎么樣的”這篇文章吧。

Java程序的初始化一般遵循三個原則(優先級依次遞減):

  • 1,靜態對象(變量)優先于非靜態對象(變量)初始化,其中,靜態對象(變量)只初始化一次,而非靜態對象(變量)可能會初始化很多次。

  • 2,父類優先于子類進行初始化。

  • 3,按照成員變量的定義順序進行初始化。即使變量定義散布于方法定義之中,它們依然在任何方法被調用之前先初始化。

Java程序初始化工作可以在許多不同的代碼塊中完成(例如靜態代碼塊,構造函數等),它們的執行順序如下:

  1. 父類靜態變量

  2. 父類靜態代碼塊

  3. 子類靜態變量

  4. 子類靜態代碼塊

  5. 父類非靜態變量

  6. 父類非靜態代碼塊

  7. 父類構造函數

  8. 子類非靜態變量

  9. 子類非靜態代碼塊

  10. 子類構造函數。

下面給出一個不同模塊初始化時執行順序的一個例子:

class Base{
           static {
                System.out.println("Base static block");

                     }

           public Base(){
           System.out.println("Base constructor");

           }

 public class Derived extends Base{
           static{
          System.out.println("Drevied static block");

                     }

            {
          System.out.println("Drevied  block");

           }

 public  Derived(){
          System.out.println("Drevied  constructor");

          }

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

          }

          }

先自己利用上面給出的執行順序進行判斷:

程序的運行結果為:

Base static block

Derived static block

Base block

Base constructor

Derived block

Derived constructor

怎么樣,運行結果是否與你的結果一致呢?

最后,我們再來看一道面試真題:

下列代碼運行結果是什么?

  class B extends Object{
          static{
          System.out.println("Load B1");

                     }

         public  B(){
          System.out.println("Create B");

          }

           static{
          System.out.println("Load B2");

           }

           }

class A extends B{
          static{
          System.out.println("Load A");

                     }

         public  A(){
          System.out.println("Create A");

          }

          }

          public class Testclass{
          public static void main(String[ ] args){
                        new A();

          }

          }

運行結果是:

Load B1      LoadB2      Load A     Create B     Create A

在面試中出現的執行順序的問題,無非也就是把上面的代碼再換幾個形式,但,萬變不離其宗,只要掌握它的執行順序的規律,所有問題就都可以迎刃而解了

以上是“Java程序初始化順序是怎么樣的”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武定县| 碌曲县| 沂南县| 原平市| 宜君县| 罗田县| 舒兰市| 宁河县| 额尔古纳市| 册亨县| 探索| 鄂温| 额济纳旗| 宜宾市| 龙泉市| 休宁县| 梁河县| 宿松县| 涞水县| 福州市| 凌海市| 安远县| 云安县| 师宗县| 拉萨市| 阿拉尔市| 四平市| 娄烦县| 化隆| 桐乡市| 嘉荫县| 南和县| 八宿县| 通许县| 肥西县| 佛教| 府谷县| 佛山市| 五河县| 天台县| 绩溪县|