java中的靜態代碼塊、構造代碼塊、普通代碼塊和同步代碼塊總結

來源:互聯網
上載者:User

標籤:

java中的4中代碼塊總結如下:

* 加了static的是靜態代碼塊,在類中寫了一對{}是構造代碼塊,在方法中寫了一對{}是普通代碼塊,
* java中還有一種代碼塊是同步代碼塊,常用在多線程中, synchronized關鍵字,
* 同步代碼塊格式是:synchronized(同步對象){}
* 靜態代碼塊 先於構造代碼塊 先於構造方法執行
* 靜態代碼塊 先於普通代碼塊 先於構造方法執行

* 構造代碼塊和普通代碼塊按照程式邏輯順序執行


package 面試題;class HelloA{public HelloA() {System.out.println("構造方法 A");}//直接在類中定義的沒有加static關鍵字的代碼塊{}稱為構造代碼塊//這是構造代碼塊,而且在new對象時,構造代碼塊優先構造方法執行{System.out.println("I`m A class");}//使用static關鍵字聲明的代碼塊稱為靜態代碼塊,靜態塊的主要目的是用來為靜態屬性初始化//靜態塊優先於主方法的執行,靜態塊優先於構造方法的執行,而且只執行一次!static{System.out.println("static A");}}//同步代碼塊主要出現在多線程中。public class HelloB extends HelloA{public HelloB() {//super();//預設省略了這個調語句System.out.println("構造方法 B");}//構造代碼塊{System.out.println("I`m B class");}//靜態代碼塊static{System.out.println("static B");}public static void main(String[] args) {//直接在一個方法中出現的{}就稱為普通代碼塊//普通代碼塊{System.out.println("main方法中的普通代碼塊1");}new HelloB();//普通代碼塊{System.out.println("main方法中的普通代碼塊2");}}}

output:

static A
static B
main方法中的普通代碼塊1
I`m A class
構造方法 A
I`m B class
構造方法 B
main方法中的普通代碼塊2


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

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.