IT 개발노트

변수의 초기화 본문

기초튼튼/JAVA

변수의 초기화

limsungju 2019. 1. 22. 12:01

1. 변수의 초기화
1.1 변수의 초기화

: 변수를 선언하고 처음으로 값을 저장하는 것을 '변수의 초기화'라고 한다.
변수의 초기화는 경우에 따라서 필수적이기도 하고, 선택적이기도 하지만,
가능하면 선언과 동시에 적절한 값으로 초기화 하는 것이 바람직하다.
* 멤버변수는 초기화를 하지 않아도 자동적으로 변수의 자료형에 맞는 기본값으로 초기화가 이루어지므로 초기화하지 않고 사용해도 된다.
* 지역변수는 사용하기 전에 반드시 초기화해야한다.

1.2 멤버변수의 초기화 방법
- 명시적 초기화
- 생성자
- 초기화 블럭

    - 인스턴스 초기화 블럭 : 인스턴스변수를 초기화 하는데 사용
    - 클래스 초기화 블럭 : 클래스변수를 초기화 하는데 사용

1.2.1 명시적 초기화
: 변수를 선언과 동시에 초기화하는 것을 명시적 초기화라고 한다.
예시 1
int door = 4;  // 기본형 변수의 초기화
Engine e = new Engine( );  // 참조형 변수의 초기화

1.2.2 초기화 블럭
: 인스턴스 초기화 블럭은 단순히 클래스 내에 블럭{ }만들고 그 안에 코드를 작성하면 된다. 클래스 초기화 블럭은 인스턴스 초기화 블럭 앞에 static을 붙이면 된다.
초기화 블럭 내에는 메서드 내에서와 같이 조건문, 반복문, 예외처리구문 등을 자유롭게 사용할 수 있다.
* 클래스 초기화 블럭은 클래스가 메모리에 처음 로딩될 때 한번만 수행되며, 인스턴스 초기화 블럭은 생성자와 같이 인스턴스를 생성할 때 마다 수행된다.
* 생성자보다 인스턴스 초기화 블럭이 먼저 수행된다.

1.3 멤버변수의 초기화 시기와 순서
- 클래스변수의 초기화시점 : 클래스가 처음 로딩될 때 단 한번 초기화 된다.
- 인스턴스변수의 초기화시점 : 인스턴스가 생성될 때마다 각 인스턴스별로 초
                                        기화가 이루어 진다.
- 클래스변수의 초기화순서 : 기본값 -> 명시적초기화 -> 클래스 초기화 블럭
- 인스턴스변수의 초기화순서 : 기본값 -> 명시적초기화 -> 인스턴스 초기화
                                        블럭 -> 생성자
* 프로그램 실행도중 클래스에 대한 정보가 요구될 때, 클래스는 메모리에 로딩된다. 예를들면, 클래스 멤버를 사용했을 때, 인스턴스를 생성할 때 등이 이에 해당한다. 하지만 해당 클래스가 이미 메모리에 로딩되어 있다면, 다시 로딩하지 않는다. 물론 초기화도 다시 수행되지 않는다.

'기초튼튼 > JAVA' 카테고리의 다른 글

상속이란?  (0) 2019.01.24
static의 이해  (0) 2019.01.23
생성자란?  (0) 2019.01.21
오버로딩이란?  (0) 2019.01.19
변수의 종류와 특징  (0) 2019.01.18