변수를 선언하고 처음으로 값을 저장하는 것
맴버 변수 : (클래스 변수와 인스턴스 변수)와 배열의 초기화 → 선택적
지역 변수: 사용하기 전 반드시 초기화 → 필수적
자료형 | 기본값 |
---|---|
boolean | false |
char | '\u0000' |
byte, short, int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d 또는 0.0 |
참조형 변수 | null |
인스턴스 초기화 블럭 : 인스턴스 변수를 초기화 하는데 사용.
클래스 초기화 블럭 : 클래스변수를 초기화 하는데 사용.
class Car{
int door = 4; // 기본형(primitive type) 변수 초기화
Engine e = new Engine(); // 참조형(reference type) 변수 초기화
}
기본형 변수 초기화 ‘=’ 는 간단 초기화
참조형 변수 초기화는 객체를 만들어야 함
클래스 초기화 블럭 : 클래스변수의 복잡한 초기화에 사용된다.
인스턴스 초기화 블럭 : 인스턴스변수의 복잡한 초기화에 사용된다.
class InitBlock {
static { //클레스 초기화 블럭 }
public BlockTest(){ //인스턴스 초기화 블럭 }
}
자동 초기화 (cv, iv 초기화) → 0
간단 초기화 =
복잡 초기화 { } 거의 사용 안함
- | - |
---|---|
클래스 변수의 초기화 시점 | 클래스가 처음 로딩될 때 단 한번 초기화 |
인스턴스변수의 초기화 시점 | 인스턴스가 생성될 때마다 각 인스턴스별로 초기화 |
클래스변수의 초기화 순서 | 기본값 → 명시적 초기화 → 클래스 초기화 블럭 |
인스턴스변수의 초기화 순서 | 기본값 → 명시적 초기화 → 인스턴스 초기화 블럭 → 생성자 |
public class InitTest {
static int cv = 1; //명시적 초기화
int iv = 1; //명시적 초기화
static { cv = 2; } //클래스 초기화 블럭
{ iv = 2; } //인스턴스 초기화 블럭
InitTest() { //생성자
iv = 3;
}
}
이 게시물은 자바의 정석 책을 요약한 내용입니다.
잘 보고 갑니다~