Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java 클래스에서 정적 멤버를 읽는 단계는 무엇입니까?

<시간/>

정적 블록이 실행되기 전에도 클래스 로딩 시 정적 변수가 생성되며 정적 블록의 목적은 정적 변수에 값을 할당하는 것입니다. 정적 변수는 정의된 클래스의 모든 인스턴스 간에 공유되는 값을 저장하고 정적 블록은 클래스가 처음 로드될 때 실행되는 코드 섹션입니다. 클래스 로딩 시 실행되어야 하는 로직을 원한다면 해당 로직은 클래스 로딩 시 실행될 수 있도록 정적 블록 내부에 배치해야 합니다.

JVM은 클래스의 정적 멤버를 읽기 위해 다음 단계를 따릅니다.

  • 정적 멤버를 위에서 아래로 식별
  • 정적 변수 할당 및 정적 블록을 위에서 아래로 실행
  • 메인 메소드의 실행

예시

public class StaticFlow {
   static int firstNumber = 10;
   static {
      firstMethod();
      System.out.println("first static block");
   }
   public static void main(String[] args) {
      firstMethod();
      System.out.println("main method executed");
   }
   public static void firstMethod() {
      System.out.println(secondNumber);
   }
   static {
      System.out.println("second static block");
   }
      static int secondNumber = 20;
}

출력

0
first static block
second static block
20
main method executed