/*
程式碼塊:在Java中,使用{}括起來的程式碼被稱為程式碼塊。
根據其位置和宣告的不同,可以分為
區域性程式碼塊:區域性位置,用於限定變數的生命週期。
構造程式碼塊:在類中的成員位置,用{}括起來的程式碼。每次呼叫構造方法執行前,都會先執行構造程式碼塊。
作用:可以把多個構造方法中的共同程式碼放到一起,對物件進行初始化。
靜態程式碼塊:在類中的成員位置,用{}括起來的程式碼,只不過它用static修飾了。
作用:一般是對類進行初始化。
面試題:
靜態程式碼塊、構造程式碼塊、構造方法的執行順序?
靜態程式碼塊 --> 構造程式碼塊 --> 構造方法
靜態程式碼塊:只執行一次
構造程式碼塊:每次呼叫構造方法都執行
*/
class Code {
static {
int a = 1000;
System.out.println(a);
}
//構造程式碼塊
{
int x = 100;
System.out.println(x);
}
//構造方法
public Code(){
System.out.println("code");
}
//構造方法
public Code(int a){
System.out.println("code2");
}
//構造程式碼塊
{
int y = 200;
System.out.println(y);
}
//靜態程式碼塊
static {
int b = 2000;
System.out.println(b);
}
}
class CodeDemo {
public static void main(String[] args) {
//區域性程式碼塊
{
int x = 10;
System.out.println(x);//10
}
//找不到符號
//System.out.println(x);
{
int y = 20;
System.out.println(y);//20
}
//---------------------------------------------------
Code c = new Code();
System.out.println("---------------");
Code c2 = new Code();
System.out.println("---------------");
Code c3 = new Code(1);
}
}