Skip to main content

Command Palette

Search for a command to run...

static, instance block

블록의 쓰임새를 알 수 있다.

Published
1 min read
static, instance block
O

SW엔지니어 호소인

static block

클래스가 로딩되고 클래스 변수가 준비된 후 자동으로 실행되는 블록

하나의 클래스 안에 여러개의 static block 존재할 수 있음

instance block

인스턴스가 생성된 후 자동으로 실행되는 블록입니다.

하나의 클래스 안에 여러개의 instance block이 존재 가능하며 생성자 호출 이전에 동작

호출 순서

  1. 클래스 로딩

  2. 클래스 변수 method 영역 할당(static, non-static zone 각각 보관)

  3. static block 실행

  4. 인스턴스 생성

  5. instance block 실행

  6. 생성자(constructor) 호출

예제

public class NonStaticTest {
    public NonStaticTest(){
        System.out.println("3.생성자 호출됨");
    }
    {
        System.out.println("2.인스턴스 블록 실행됨");
    }
    static {
        System.out.println("1.스태틱 블록 실행됨");
    }

    public static void main(String[] args) {
        int a=10, b=20;
        NonStaticTest nonStaticTest= new NonStaticTest();
        NonStaticTest nonStaticTest2= new NonStaticTest();
        System.out.println(nonStaticTest.hap(a, b));
        {
            a=20;
            b=30;
            System.out.println(nonStaticTest.hap(a, b));
        }

        System.out.println(nonStaticTest.hap(a, b));
    }

    public int hap(int a, int b) {
        return a + b;
    }
}
1.스태틱 블록 실행됨
2.인스턴스 블록 실행됨
3.생성자 호출됨
2.인스턴스 블록 실행됨
3.생성자 호출됨
30
50
50

TIL

Part 11 of 20

배운 점, troubleshooting 해나간 것들을 기록하는 공간

Up next

AOP(Aspect Oriented Programming)

관점 지향 프로그래밍