지역변수의 초기화는 필수적이지만, 멤버변수(클래스변수, 인스턴스변수)와 배열은 다음과같이 자동 초기화된다.
자료형 | 기본값 |
---|---|
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 |