代碼塊:就是用{}括起來到部分。根據應用的不同分爲4類:普通代碼塊、構造塊、靜態代碼塊、同步代碼塊。
1.普通代碼塊:定義在方法中的代碼塊。
如:
publicclass Ex22 {
publicstaticvoid main(String[] args){
// 普通代碼塊
{
int i = 3;
System.out.println("局部變量爲 " + i);
}
int i = 5;
System.out.println("相對上面的 i 來說是全局的變量 " + i);
}
}
//局部變量爲 3
//相對上面的 i 來說是全局的變量 5
2.構造塊:直接在類中編寫的代碼塊。
class Demo5{
{
System.out.println("構造塊");
}
public Demo5(){
System.out.println("構造方法");
}
{
System.out.println("構造方法後的構造塊");
}
}
publicclass Ex22 {
publicstaticvoid main(String[] args){
new Demo5();
new Demo5();
}
}
//構造塊
//構造方法後的構造塊
//構造方法
//構造塊
//構造方法後的構造塊
//構造方法
對象被實例化一次構造塊就執行一次;
構造塊優先執行比構造方法.
3.靜態代碼塊:static 關鍵字聲明的代碼塊.
class Demo5{
{
System.out.println("1構造塊");
}
public Demo5(){
System.out.println("2構造方法");
}
{
System.out.println("3構造方法後的構造塊");
}
static {
System.out.println("4靜態代碼塊");
}
}
publicclass Ex22 {
static {
System.out.println("在主方法類中定義的代碼塊");
}
publicstaticvoid main(String[] args){
new Demo5();
new Demo5();
}
}
//在主方法類中定義的代碼塊
//4靜態代碼塊
//1構造塊
//3構造方法後的構造塊
//2構造方法
//1構造塊
//3構造方法後的構造塊
//2構造方法
主方法靜態代碼塊優先於主方法,
在普通類中靜態塊優先於構造塊,
在普通類中構造塊優先於構造方法,
靜態塊只實例化一次。