標籤:
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中的靜態代碼塊、構造代碼塊、普通代碼塊和同步代碼塊總結