Java에서 정적 및 인스턴스 초기화 블록의 실행 순서
Java 클래스로 작업할 때 정적 및 인스턴스 초기화 블록의 실행 순서를 이해하는 것이 중요합니다. 인스턴스 초기화 블록이 실행됩니다. 이러한 블록은 초기 값 할당, 클래스 및 객체 멤버 초기화와 같은 중요한 작업을 수행합니다.
인스턴스 초기화 블록
중괄호 { }로 묶인 인스턴스 초기화 블록이 실행됩니다. 클래스의 인스턴스가 생성될 때마다. 클래스 내의 코드에 나타나는 순서대로 실행됩니다. 이 동작은 모든 클래스에서 일관됩니다.
정적 초기화 블록
중괄호 { }로 묶이고 앞에 static 키워드가 오는 정적 초기화 블록은 다음과 같은 경우에 실행됩니다. 클래스가 로드되었습니다. 특정 인스턴스와 연결되지 않으며 생성된 인스턴스 수에 관계없이 한 번만 실행됩니다.
특정 실행 순서
JLS(Java 언어 사양) 정적 초기화 블록 실행을 위한 특정 순서를 정의합니다.
예
다음 코드를 생각해 보세요. 예:
class Grandparent { static { System.out.println("Static - Grandparent"); } } class Parent extends Grandparent { static { System.out.println("Static - Parent"); } } class Child extends Parent { static { System.out.println("Static - Child"); } }
main 메서드가 실행되면 다음 출력이 생성됩니다.
Static - Grandparent Static - Parent Static - Child
이는 정적 초기화 블록이 parent -> 순서로 실행됨을 보여줍니다. 하위 클래스.
예외
이 규칙에는 한 가지 주목할만한 예외가 있습니다. 상위 클래스가 참조되지 않는 클래스를 정의하는 경우 해당 정적 초기화 블록은 실행되지 않습니다. 클래스 로더는 명시적으로 필요한 클래스만 초기화하기 때문입니다.
위 내용은 Java에서 정적 및 인스턴스 초기화 블록의 실행 순서는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!