
지역변수의 초기화는 필수적이지만, 멤버변수(클래스변수, 인스턴스변수)와 배열은 다음과같이 자동 초기화된다.
| 자료형 | 기본값 |
|---|---|
| boolean | false |
| char | '\u0000' |
| byte | 0 |
| short | 0 |
| int | 0 |
| long | 0L |
| float | 0.0f |
| double | 0.0d or 0.0 |
| 참조형 변수 | null |
기본값
명시적 초기화
초기화 블럭
생성자(인스턴스 변수만 해당)
0,1,2,3순으로 변수가 초기화된다.
class InitTest{
static int cv = 1;
int iv = 1;
static{
cv = 2;
}
{
iv = 2;
}
InitTest() {
iv = 3;
}
}
| 클래스 초기화 | - | - | 인스턴스 초기화 | - | - | - | |
|---|---|---|---|---|---|---|---|
| 기본값 | 명시적 초기화 |
클래스 초기화블럭 |
기본값 | 명시적 초기화 |
인스턴스 초기화블럭 |
생성자 | |
| cv | 0 | 1 | 2 | 2 | 2 | 2 | 2 |
| iv | 0 | 1 | 2 | 3 | |||
| order | 1 | 2 | 3 | 4 | 5 | 6 | 7 |