Java의 정적 키워드에 대한 시리즈의 첫 번째 게시물에 오신 것을 환영합니다! 이번 시리즈에서는 정적 변수, 메서드, 중첩 클래스 등과 같은 다양한 개념을 세분화하여 간략한 게시물로 다루어 이러한 개념을 쉽게 이해할 수 있도록 도와드리겠습니다.
이번 게시물에서는 클래스 로딩 중에 한 번 코드를 실행하는 데 사용되는 특수 기능인 정적 블록에 중점을 둘 것입니다. 실습 예제를 통해 정적 블록이 무엇인지, 어떻게 작동하는지, 언제 사용해야 하는지 알아보세요.
정적 블록은 JVM의 ClassLoader에 의해 클래스가 메모리에 로드될 때 정확히 한 번 실행되는 static 키워드가 표시된 코드 블록입니다.
아래는 비교를 위해 생성자 및 초기화 블록과 함께 정적 블록의 동작을 보여주는 프로그램입니다.
package keywords.static_keyword; public class StaticBlock { public static int constantNumber; private int number; // Static Block: Executes once when the class is loaded. static { constantNumber = 100; System.out.println("Static Block Invoked: " + constantNumber); } // Constructor: Called whenever a new object is created. public StaticBlock() { System.out.println("Default Constructor invoked: " + number); } // Constructor: Called whenever a new object is created. public StaticBlock(int num) { System.out.println("Parameterized Constructor invoked: " + (number + num)); } // Initializer Block: Runs before EVERY constructor call. { System.out.println("Initializer Block Invoked"); number = 60 + constantNumber; } public static void main(String[] args) { // Objects created to observe initializer and constructor behavior. StaticBlock obj1 = new StaticBlock(); StaticBlock obj2 = new StaticBlock(200); } }
출력:
Static Block Invoked: 100 Initializer Block Invoked Default Constructor invoked: 0 Initializer Block Invoked Parameterized Constructor invoked: 260
정적 블록 실행
객체 생성 및 초기화 블록
생성자 행동
Feature | Static Block | Initializer Block | Constructor |
---|---|---|---|
When Executed | On class loading | Before each constructor call | On object creation |
How Many Times | Once | Every time an object is created | Every time an object is created |
Purpose | Initialize static members | Initialize instance variables | Initialize the object |
Access Restrictions | Can’t access non-static members directly | Can access both static and non-static | Can access both static and non-static |
결론
Java의 정적 블록은
클래스 로딩 중에 코드를 한 번 실행정적 키워드와 관련된 더욱 중요한 개념을 탐구하는 다음 게시물을 기대해 주세요.
위 내용은 정적 키워드: Java에서 정적 블록 디코딩의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!