java 程式碼塊
程式碼塊
在java中用{}括起來的稱為程式碼塊,程式碼塊可分為以下四種:
- 普通程式碼塊
- 構造程式碼塊
- 靜態程式碼塊
- 同步程式碼塊
普通程式碼塊
在方法或語句中出現的{}就稱為普通程式碼塊。普通程式碼塊和一般語句的執行順序由他們在程式碼中出現的次序決定,先出現先執行。
普通程式碼塊一般過來限制變數的作用域,防止程式碼過多時可能產生的變數命名衝突。
示例:
public class testDemo { public static void main(String[] args ) { { int x = 3; System.out.println("普通程式碼塊中的變數x=" + x); } int x = 1; System.out.println("主方法中的變數想=" + x); { int y = 7; System.out.println("普通程式碼塊中的變數y=" + y); } } }
構造程式碼塊
在類中直接使用沒有任何修飾符的{}宣告的程式碼塊就是構造塊。
和建構函式的作用類似,都能對物件進行初始化,並且只要例項化一個物件,構造程式碼塊都會執行一次。
構造塊優先於建構函式執行,如果存在多個構造程式碼塊,則執行順序按照定義的順序依次執行。
示例:
public class testDemo { public static void main(String[] args ) { Test t = new Test(); } }class Test{ { //構造程式碼塊 System.out.println("構造程式碼塊1。"); } //建構函式 public Test(){ System.out.println("無參建構函式。"); } { //構造程式碼塊 System.out.println("構造程式碼塊2。"); } } 輸出結果: 構造程式碼塊1。 構造程式碼塊2。 無參建構函式。
靜態程式碼塊
在java中使用static關鍵字宣告的程式碼塊。靜態塊用於初始化類,為類的屬性初始化。
靜態程式碼塊在類被載入的時候就執行了,而且 只執行一次,並且優先於各種程式碼塊以及建構函式。如果一個類中有多個靜態程式碼塊,會按照書寫順序依次執行。
一般情況下,如果有些程式碼需要在專案啟動的時候就執行,這時候就需要靜態程式碼塊。比如一個專案啟動需要載入的很多配置檔案等資源,我們就可以都放入靜態程式碼塊中。
示例:
public class testDemo { public static void main(String[] args ) { Test t1 = new Test(); System.out.println("**********"); Test t2 = new Test(); } }class Test{ static { //靜態程式碼塊 System.out.println("靜態程式碼塊1。"); } //建構函式 public Test(){ System.out.println("無參建構函式。"); } static { //靜態程式碼塊 System.out.println("靜態程式碼塊2。"); } } 輸出結果: 靜態程式碼塊1。 靜態程式碼塊2。 無參建構函式。 ********** 無參建構函式。
同步程式碼塊
使用synchronized(){}包裹起來的程式碼塊,在多執行緒環境下,對共享資料的讀寫操作是需要互斥進行的,否則會導致資料的不一致性。同步程式碼塊需要寫在方法中。
程式碼塊執行順序
靜態程式碼塊 > 構造程式碼塊 > 建構函式
示例:
public class testDemo { public static void main(String[] args ) { Test t = new Test(); } }class Test{ { //構造程式碼塊 System.out.println("構造程式碼塊"); } //建構函式 public Test(){ System.out.println("建構函式"); } static { //靜態程式碼塊 System.out.println("靜態程式碼塊"); } } 輸出結果: 靜態程式碼塊 構造程式碼塊 建構函式
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70019613/viewspace-2923460/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java - 26 程式碼塊Java
- Java 中的程式碼塊Java
- Java中的程式碼塊Java
- Java靜態程式碼塊Java
- Java中靜態程式碼塊、構造程式碼塊、建構函式、普通程式碼塊Java函式
- java中的程式碼塊(初始化塊)Java
- Java普通程式碼塊,構造程式碼塊,靜態程式碼塊區別,執行順序的程式碼例項Java
- Java中建構函式、靜態程式碼塊、程式碼塊的執行順序Java函式
- Java基礎知識整理之程式碼塊Java
- [譯] 用 Java 程式碼實現區塊鏈Java區塊鏈
- java程式碼初始化塊指的是什麼Java
- 程式碼塊
- static程式碼塊、構造程式碼塊、建構函式以及Java類初始化順序C程式函式Java
- 用Java程式碼實現區塊鏈技術Java區塊鏈
- Java中構造方法,構造程式碼塊和靜態程式碼塊執行順序詳解Java構造方法
- 五:程式碼塊
- 夯實Java基礎系列7:Java 程式碼塊和執行順序Java
- 構造程式碼塊
- 靜態程式碼塊
- Union Find程式碼塊
- JS常用程式碼塊JS
- Java Elasticsearch8.x索引管理可複用程式碼塊JavaElasticsearch索引
- java學習回顧---執行緒和同步程式碼塊Java執行緒
- 【Java】【多執行緒】同步方法和同步程式碼塊、死鎖Java執行緒
- java7-2 構造程式碼塊的概述和講解Java
- Xcode自定義程式碼塊XCode
- Concurrency(六: 同步程式碼塊)
- 程式碼初始化塊
- 關於Static程式碼塊、匿名程式碼塊、構造器的小擴充C程式
- Java基礎、jvm 程式碼塊和構造方法的小問題JavaJVM構造方法
- Pycharm程式碼塊的設定PyCharm
- synchronized 程式碼塊怎麼用synchronized
- JNI:Java程式碼呼叫原生程式碼Java
- static變數,static程式碼塊,建構函式,程式碼塊等的載入順序變數C程式函式
- xcode10 自定義程式碼塊XCode
- Ruby 中的閉包-程式碼塊
- Typora 程式碼塊Mac風格化Mac
- 夯實Java基礎系列7:一文讀懂Java 程式碼塊和執行順序Java