Java ClassLoader lazyloading

嚴(yán)格意義上講應(yīng)該叫l(wèi)azyinitializing
JVM并沒有規(guī)定何時(shí)加載
但是嚴(yán)格規(guī)定了什么時(shí)候必須加載

  • new getstatic putstatic invokestatic指令,訪問(wèn)final變量除外
  • java.lang.reflect對(duì)類進(jìn)行反射調(diào)用時(shí)
  • 初始化子類的時(shí)候,父類首先初始化
  • 虛擬機(jī)啟動(dòng)時(shí),被執(zhí)行的主類必須初始化
  • 動(dòng)態(tài)語(yǔ)言支持java.lang.invoke.MethodHandle解析的結(jié)果為REF_getstatic REF_putstatic REF_invokestatic的方法句柄時(shí),改類必須初始化
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容