Class.forName의 initialize flag는 load와 static 초기화 시점을 가른다

Class object가 생겼다는 사실만으로 static initializer가 이미 실행됐다고 판단할 수 없습니다.

Class.forName(name, initialize, loader)initialize가 true인가

false

load/link 가능 · static init 보류

true

필요하면 initialize 실행

static field read

active use로 initialize 가능

ClassLoader.loadClass

보통 initialize하지 않음

핵심: 진단 목적이면 false로 load만 수행하고 active use 또는 true 호출에서 초기화 시점을 관찰합니다.