초기화

HEUKWU·2022년 12월 27일
0
post-thumbnail

변수의 초기화

변수를 선언하고 처음으로 값을 저장하는 것을 변수의 초기화라고 한다.

호출스택은 재사용이 빈번한 메모리이다. 따라서 메서드가 호출될 때마다 원래 있던 지역변수의 값을 덮어쓰는 방식으로 처리한다. 그래서 지역변수는 항상 사용하기 전에 수동 초기화를 해줘야 한다.

멤버변수는 지역변수에 비해 비교적 유지기간이 길고 재사용성이 크기 때문에 기본값으로 자동초기화된다.

멤버변수의 초기화

명시적 초기화
대입 연산자를 사용해 초기화한다. 가장 기본적이면서 간단한 초기화 방법으로 가장 우선적으로 고려되어야 한다.

초기화 블럭
클래스 초기화 블럭 - 클래스 변수의 복잡한 초기화에 사용된다.
인스턴스 초기화 블럭 - 인스턴스변수의 복잡한 초기화에 사용된다.

인스턴스 초기화 블럭은 단순히 클래스 내에 블럭을 만들고 안에 코드를 작성하기만 하면 된다.
클래스 초기화 블럭은 인스턴스 초기화 블럭 앞에 static을 붙히면 된다.

클래스 초기화 블럭은 클래스가 메모리에 처음 로딩될 때 한번만 수행되며, 인스턴스 초기화 블럭은 인스턴스를 생성할 때마다 수행된다.
생성자

멤버변수의 초기화 시기와 순서

클래스 변수 초기화 시점: 클래스가 처음 로딩될 때(메모리에 올라갈 때) 한번
인스턴스 변수 초기화 시점: 인스턴스가 생성될 때마다

class InitTest {
	static int cv = 1;
    int iv = 1;
    
    static {
    	cv = 2;
    }
    {
   		iv = 2;
    }
    InitTest() {
    	iv = 3;
    }
}

0개의 댓글

관련 채용 정보