線程上下文類別載入器與普通類別載入器
Java 提供了兩種不同的類別載入機制:執行緒上下文類別載入器和普通類別載入器類別載入器。
執行緒的上下文類別Loader
上下文類別載入器是與每個執行緒關聯的類別載入器。當執行緒需要動態載入類別時使用它,例如使用反射或反序列化時。預設情況下,上下文類別載入器設定為載入執行緒主類別的類別載入器的父類別載入器。
普通類別載入器
普通類別載入器是用來載入目前類別的類別的類別載入器。它是使用 getClass().getClassLoader() 方法檢索的。通常,普通類別載入器與上下文類別載入器相同,即它是載入主類別的類別載入器的父類別載入器。
使用哪個類別載入器?
當執行緒動態載入類別時,它通常使用上下文類別載入器。但是,如果執行緒的上下文類別載入器與普通類別載入器不同,則使用哪一個取決於上下文。
只有在特定情況下才能使用普通類別載入器來取代上下文類別載入器。例如,如果上下文類別載入器為空,則使用普通類別載入器。
推薦
一般情況下,建議使用普通類別載入器(即、 getClass().getClassLoader()) 明確載入類別時,即使上下文類別載入器不同。顯式類別載入應始終使用執行載入的類別的類別載入器。
以上是線程上下文類別載入器與普通類別載入器:什麼時候應該使用哪個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!