static block & instance block

김민혁·2022년 1월 22일
0

static block

  • 클래스가 로딩되고 클래스 변수가 준비된 후 자동으로 실행되는 블록
  • 한 클래스 안에 여러개의 static 블록을 넣을 수 있다.
  • 용도
    • 주로 클래스 변수를 초기화시키는 코드를 둔다.
  • 사용법
public class Person{
	static String name; 
	static{
		name = "김민혁";
	}
}
  • 실행 순서
  1. 클래스가 로딩된다
  2. 클래스 변수가 있으면 메모리를 생성한다.
  3. static 블록이 선언된 순서대로 실행된다.

클래스 로딩 절차

  1. JRE 라이브러리 폴더에서 클래스를 찾는다.
  2. 없으면 CLASSPATH 환경 변수에 지정된 폴더에서 클래스를 찾는다.
  3. 찾았으면 그 클래스 파일이 올바른 바이트코드인지 검증한다.
  4. 올바른 바이트코드라면 Method Area 영역으로 파일을 로딩한다
  5. 클래스 블록이 있으면 순서대로 그 블록을 실행한다.
  6. 클래스 안에 static block들이 있으면 순서대로 그 블록을 실행한다.

instance blcok

  • 인스턴스가 생성된 후 자동으로 실행하는 블록
  • 한 클래스 안에 여러개의 인스턴스 블록을 넣을 수 있다.
  • 용도
    • 인스턴스 변수를 초기화시키는 코드를 둔다.
    • 어떤 생성자가 호출되든 그 전에 공통으로 초기화시키고 싶은 작업이 있다면 인스턴스 블록에서 처리하면 된다.
  • 사용법
public class Person {
static String name;
int age;
{
// 인스턴스 블록
this.age= 30;
}
profile
학생

0개의 댓글