<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                這一節我們看一個比較特殊的概念,那就是靜態代碼塊。 前面我們也提到過代碼塊,就是一段獨立的代碼空間,那么什么是靜態代碼塊呢?說白了,**就是用static關鍵字修飾的代碼塊。** 我們來看一個例子: ~~~ class StaticBlock { static { System.out.println("靜態代碼塊被執行"); } void myPrint() { System.out.println("myPrint方法執行"); } } class StaticBlockTest { public static void main(String[] args) { new StaticBlock().myPrint(); } } ~~~ 我們來看一看運行結果: ![](https://box.kancloud.cn/2016-05-18_573c422a62405.jpg) 從結果我們看到了我們調用的myPrint函數被調用執行了,并且在此函數被調用之前,靜態代碼塊就已經被執行。 這就是我們要說的特別之處,靜態代碼塊是特殊的代碼塊,它被static關鍵字修飾,并且擁有靜態的所有特征,最主要的是它有一個比較自然獨特的特點:我們之前說,**靜態隨著類的加載而加載,而靜態代碼塊隨著著類的加載而執行,只要類被加載,那么該靜態代碼塊就會被執行,并且只執行一次。** 我們看下面的測試: ~~~ class StaticBlockTest { public static void main(String[] args) { new StaticBlock().myPrint(); new StaticBlock().myPrint(); } } ~~~ 結果: ![](https://box.kancloud.cn/2016-05-18_573c422a7351b.jpg) 我們看到,靜態代碼塊只執行了一次,而我們的myPrint方法被調用了兩次執行了兩次。所以當類加載時,靜態方法就已經加載并且執行一次。 通過上面的例子讓我們明確了靜態代碼塊的實際作用:**用于給類進行初始化。** 這就相當于我們之前學習的構造函數,構造函數是用于給對象進行初始化,而靜態代碼塊是用來給類進行初始化。 這里我們也許會有疑問,既然構造函數能夠進行初始化,那么我們為什么還要用靜態代碼塊來初始化呢,其實不是所有的類都能創建對象,因為有些類有可能不需要被創建對象的,比如我們在一個類中定義的全部是靜態成員,那么創建對象就沒有意義。 我們再看一個靜態代碼塊的用法,我們看下面的代碼: ~~~ class StaticBlock { static int num; static { num = 10; num = num * 3; } void myPrint() { System.out.println("num = "+num); } } class StaticBlockTest { public static void main(String[] args) { new StaticBlock().myPrint(); } } ~~~ 我們來看運行結果: ![](https://box.kancloud.cn/2016-05-18_573c422a86ac0.jpg) 從結果我們直接可以看到,我們在靜態代碼塊中對靜態變量進行了多次運算和賦值,所以當我們需要對靜態變量進行多次運算時我們可以運用靜態代碼塊。 不過這個在開發中用的并不多,在一些底層的框架開發中會專門用到。 這一節我們就簡單的學到這里。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看