java複習基礎篇——代碼執行順序

來源:互聯網
上載者:User

標籤:面試題   img   空間   rgs   而且   執行   靜態   相同   static   

代碼塊:在Java中,使用{}括起來的代碼成為代碼塊

 根據其位置和聲明的不同,可以分為局部代碼塊:局部位置,用於限定變數的生命週期

構造代碼塊:在類中的成員位置,用{}括起來的代碼。每次調用構造方法執行前,都會先執行構造代碼塊。

作用:可以把多個構造方法的共同代碼放在一起。

靜態代碼塊:在類中的成員位置,用{}括起來的代碼,只不過它用static修飾

作用:一般是對類進行初始化

 

public class BlockTest {
    {
    System.out.println("444 BlockTest構造代碼塊(上)!");
    }

      public static void main(String[] args) {
      {
      System.out.println("222 局部代碼塊運行!");
      }
    System.out.println("333 BlockTest主方法執行了");
    BlockTest blockTest = new BlockTest();
    Coder cd = new Coder();
    Coder cd2 = new Coder();
                      }

    static {
    System.out.println("111 BlockTest靜態代碼塊被執行");
       }

    {
    System.out.println("555 BlockTest構造代碼塊被執行(下)");
    }

      public BlockTest() {
      System.out.println("666 BlockTest無參構造執行");
              }
        }    class Coder {

    static {
    System.out.println("777 Coder靜態代碼塊被執行");
      }

    {
    System.out.println("888 Coder構造代碼塊被執行");
    }

      public Coder() {
      System.out.println("999 Coder無參構造執行");
             }
          }

執行順序結果:

 

 

【1】靜態代碼塊

作用:是對類進行初始化,若一個類包含多個靜態代碼塊,那則是按照代碼執行順序執行。

1.隨著類的載入而執行,而且只一次。

2.優先於主函數執行。

3. 當類進入記憶體時,首先進行靜態代碼載入,例如靜態代碼塊,用static 修飾的變數,函數等。靜態代碼塊用於初始化類。建構函式是對對象進行初始化,而靜態代碼塊可以對類進行初始化,就如在靜態代碼塊中把靜態變數 num 修改他的值。而且在一些不需要對類執行個體化的場合,靜態代碼塊也可以非常有用。

 

【2】構造代碼塊

在類中:

格式:{構造代碼塊執行語句}

作用:就是給所有對象進行初始化。

注意幾點:1.每次建立對象他都會執行。

2.構造代碼快是優於建構函式執行。

3.構造代碼塊與建構函式的區別是:構造代碼塊是給所有對象進行統一初始化,而建構函式是給對應的對象初始化,因為建構函式是可以多個的,運行哪個建構函式就會建立什麼樣的對象,但無論建立哪個對象,都會先執行相同的構造代碼塊。也就是說,構造代碼塊中定義的是不同對象共性的初始化內容。

 

【3】局部代碼塊

局部代碼塊,又叫普通代碼塊。它是作用在方法中的代碼塊。

作用:是控制變數的生命週期。

在程式中當我們定義完成一個局部變數x之後,並且在接下來的代碼中,不想再用到它時,那麼就沒必要讓x在記憶體中繼續佔用空間。因此就有了局部代碼塊。

 

 

 面試題?

 靜態代碼塊、構造代碼塊、構造方法的執行順序?

 靜態代碼塊>構造代碼塊>構造方法

 靜態代碼塊:只執行一次

構造方法:每次調用構造方法都執行

java複習基礎篇——代碼執行順序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.