클래스 변수

  1. 클래스 로더가 링킹 단계에서 해당 타입의 기본값으로 초기화
  2. 클래스 로더가 초기화 단계에서 해당 변수의 명시적 초기화에 의해 작성한 값으로 초기화
  3. 클래스 초기화 블록(static블록) 있다면 마지막으로 블록안에 값으로 초기화

인스턴스 변수

  1. 인스턴스가 생성되면서 Heap영역에 해당 타입에 기본값으로 초기화
  2. 명시적 초기화에 의해 작성한 값으로 초기화
  3. 인스턴스 블록에 값으로 초기화
  4. 생성자의 값으로 초기화