java static/instance block 을 알아보자!

Karim·2022년 7월 17일
4

study

목록 보기
4/7
post-thumbnail

1. static block 란

static block

  • class가 로딩되고 class 변수가 준비된 후 자동으로 실행되는 블록
  • 한 calss 안에 여러개 static block을 넣을 수 있다.

2. instance block 란

instance block

  • 인스턴스가 생성된 후 자동으로 실행하는 블록
  • 한 calss 안에 여러개 인스턴스 블록을 넣을 수 있다.

3. static block example

✒️ example code

public class StaticBlock {
    // static block
    static {
        System.out.println("static karim");
    }

    // main
    public static void main(String[] args) {
        System.out.println("Main karim");
    }
}

💻 실행 화면

💬 실행 순서

  • class 로딩
  • static block 이 선언된 순서대로 실행
  • static block 실행 후 method 영역 실행

4. instance block example

✒️ example code

public class InstanceBlock {
    // Instance block
    {
        System.out.println("Instance karim");
    }

    // main
    public static void main(String[] args) {
        new InstanceBlock();

        System.out.println("Main karim");

        new InstanceBlock();
    }
}

💻 실행 화면

💬 실행 순서

  • instance 생성
  • 생성자가 호출되기 전에 instance block이 선언된 순서대로 실행

5. all block example

✒️ example code

public class AllBlock {
    // static block
    static {
        System.out.println("static karim");
    }

    // instance block
    {
        System.out.println("instance karim");
    }

    // main
    public static void main(String[] args) {
        System.out.println("Main karim");

        new AllBlock();
    }
}

💻 실행 화면

6. 결론

📝

  • static block
    • 주로 class 변수초기화 시키는 코드를 둔다
  • instance block
    • instance 변수초기화 시키는 코드를 둔다.
    • 어떤 생성자가 호출되든 그 전에 공통으로 초기화시키고 싶은 작업이 있다면 인스턴스 블록에서 처리하면 된다.

📌 여담

  • 회사에서 교육받는데 static block 코드를 이번에 처음 보았다.! 그래서 정리하게 되었다!!

📚 참고

profile
나도 보기 위해 정리해 놓은 벨로그

0개의 댓글