[자바 객체 지향] static 블록

2021. 8. 7. 00:01CSE/JAVA

- static 블록 예시

public class Animal {
	static{
    	System.out.println("동물 클래스 시작!");
    }
}
public class Main{
	public static void main(String[] args){
    	Animal pororo = new Animal();
    }
}
//동물 클래스 시작!

- 프로그램이 시작될 때, 모든 클래스가 T 메모리의 스태틱 영역에 로딩된다 (X)

=> 해당 패키지 또는 클래스가 처음으로 사용될 때 로딩된다 (O)

=> 따라서 위에서 Animal 클래스가 처음 사용되는 Animal pororo = new Animal(); 라인을 실행할 때, Animal 클래스가 스태틱 영역에 로딩되는 것이다.

 

- static 블록은 해당 클래스가 처음 스태틱 영역에 로딩될 때 실행된다.

- 클래스가 제일 처음 사용될 때는 다음 세 가지 경우가 있다.

  • 클래스의 정적 속성을 사용할 때
  • 클래스의 정적 메소드를 사용할 때
  • 클래스의 인스턴스를 최초로 만들 때

- 하지만 실무에서 static 블록을 사용할 일은 거의 없다고 한다.