java spring

자바의 클래스 멤버 변수 초기화 순서

윤돌_99 2021. 12. 16. 23:23

static 변수 선언부 -> 필드 변수 선언부 -> 생성자 block

 

1. static 변수 선언부

클래스가 로드될 때 변수가 가장 먼저 초기화된다.

 

2. 필드 변수 선언부

객체 생성될 떼 생성자 block보다 앞서 초기화됨

 

3. 생성자 block

객체 생성될 때 JVM이 내부적으로 locking 필드 변수 중 finla 변수의 가시화는 생성자 block이 끝난 다음.

필드 변수 선언부에서 이미 초기화되었다면 그 값들을 덮어씀.