Java中的程式碼塊
什麼是程式碼塊?
程式碼塊是一種常見的程式碼形式。他用大括號“{}”將多行程式碼封裝在一起,形成一個獨立的程式碼區,這就構成了程式碼塊。1.區域性程式碼塊:
類中方法的方法體,給變數限定生命週期,區域性程式碼塊的變數在執行結束後會被Java回收。2.構造程式碼塊:
構造塊會在建立物件時被呼叫,每次建立時都會被呼叫,優先於類建構函式執行。3.靜態程式碼塊:
用static{}包裹起來的程式碼片段,只會執行一次。靜態程式碼塊優先於構造塊執行。程式碼塊的演示
區域性程式碼塊:
在方法或語句中出現的{}就稱為區域性程式碼塊。區域性程式碼塊和一般語句的執行順序由他們在程式碼中出現的次序決定,先出現先執行。
public static void main(String[] args) {
{
int x = 3;
System.out.println("普通程式碼塊內的變數x=" + x);
}
int x = 1;
System.out.println("主方法內的變數x=" + x);
{
int y = 7;
System.out.println("普通程式碼塊內的變數y=" + y);
}
}
構造程式碼塊:
直接在類中定義且沒有加static關鍵字的程式碼塊稱為{}構造程式碼塊。構造程式碼塊在建立物件時被呼叫,每次建立物件都會被呼叫,並且構造程式碼塊的執行次序優先於類建構函式。如果存在多個構造程式碼塊,執行順序由他們在程式碼中出現的次序決定,先出現先執行。
public class Test {
{
System.out.println("第一個構造塊");
}
public Test() {
System.out.println("構造方法");
}
{
System.out.println("第二個構造塊");
}
}
靜態程式碼塊:
在java中使用static關鍵字宣告的程式碼塊。靜態塊用於初始化類,為類的屬性初始化。每個靜態程式碼塊只會執行一次。由於JVM在載入類時會執行靜態程式碼塊,所以靜態程式碼塊先於主方法執行。
如果類中包含多個靜態程式碼塊,那麼將按照"先定義的程式碼先執行,後定義的程式碼後執行"。注意:
1.靜態程式碼塊不能存在於任何方法體內。2.靜態程式碼塊不能直接訪問例項變數和例項方法,需要通過類的例項物件來訪問。
public class Test {
// 靜態塊
static {
System.out.println("靜態程式碼塊");
}
// 非靜態塊
{
System.out.println("非靜態程式碼塊");
}
}
可以看出:靜態塊總是最先執行的,並且只有在建立該類的第一個例項的時候才會執行一次;第二執行的是構造塊;第三執行的是構造方法。 相關文章
- Java 中的程式碼塊Java
- java中的程式碼塊(初始化塊)Java
- Java中靜態程式碼塊、構造程式碼塊、建構函式、普通程式碼塊Java函式
- java 程式碼塊Java
- Java中建構函式、靜態程式碼塊、程式碼塊的執行順序Java函式
- Java靜態程式碼塊Java
- Java普通程式碼塊,構造程式碼塊,靜態程式碼塊區別,執行順序的程式碼例項Java
- Java程式碼塊與Java繼承Java繼承
- Ruby 中的閉包-程式碼塊
- Gradle中的buildScript程式碼塊GradleUI
- Java中構造方法,構造程式碼塊和靜態程式碼塊執行順序詳解Java構造方法
- java static 與 static靜態程式碼塊Java
- Java基礎知識整理之程式碼塊Java
- [譯] 用 Java 程式碼實現區塊鏈Java區塊鏈
- java程式碼初始化塊指的是什麼Java
- 程式碼塊
- java中try catch塊的使用Java
- 物件導向-繼承中的面試題:程式碼塊物件繼承面試題
- static程式碼塊、構造程式碼塊、建構函式以及Java類初始化順序C程式函式Java
- 手機設定在文章中嵌入程式碼塊
- 用Java程式碼實現區塊鏈技術Java區塊鏈
- Optional簡化空值判斷,減少程式碼中的if-else程式碼塊
- java使用程式塊(轉)Java
- java7-2 構造程式碼塊的概述和講解Java
- 五:程式碼塊
- 在python程式中呼叫java程式碼PythonJava
- 靜態程式碼塊、構造程式碼塊、構造方法構造方法
- Pycharm程式碼塊的設定PyCharm
- java中是否有控制程式碼的說?Java
- 關於Static程式碼塊、匿名程式碼塊、構造器的小擴充C程式
- 判斷核取方塊中是否有被選中的程式碼例項
- 構造程式碼塊
- 靜態程式碼塊
- JS常用程式碼塊JS
- Union Find程式碼塊
- 夯實Java基礎系列7:Java 程式碼塊和執行順序Java
- Java程式碼中,如何監控Mysql的binlog?JavaMySql
- java學習回顧---執行緒和同步程式碼塊Java執行緒