CSE/JAVA
[자바 객체 지향] static 블록
Csprout
2021. 8. 7. 00:01
- 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 블록을 사용할 일은 거의 없다고 한다.