Static block trong Java

Không giống C++, Java hỗ trợ một block đặc biệt gọi là static block được sử dụng để khởi tạo giá trị cho các thuộc tính static của class. Các mã code bên trong static block được thực thi một lần tại thời điểm đầu tiên class được tải và bộ nhớ.

class Test {
    static int i;
    int j;
      
    static {
        i = 10;
        System.out.println("static block called ");
    }

}
  
class Main {
    public static void main(String args[]) {
          System.out.println(Test.i); 
    }
}

Output:

static block called
10

Ngoài ra, static block được thực thi trước constructor, chúng ta có thể kiểm chứng điều đó thông qua ví dụ sau

class Test {
    static int i;
    int j;
    static {
        i = 10;
        System.out.println("static block called ");
    }
    Test(){
        System.out.println("Constructor called");
    }
}
  
class Main {
    public static void main(String args[]) {
  
       Test t1 = new Test();
       Test t2 = new Test();
    }
}

Output:
static block called
Constructor called
Constructor called

Nguồn

https://www.geeksforgeeks.org/g-fact-79/

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x