也就是說當你連接到您的類路徑中的任何JAR文件。那麼據我所知,從第一次加載jar的任何類時,當你創建該類型的任何對象時,在哪種情況下將會加載一個新類?
- 。或
- 如果您正在訪問任何靜態成員或類的方法。或
- 當裝載通過使用Class.forName()方法。
那麼,有沒有加載類的第一次的其他方法嗎?
也就是說當你連接到您的類路徑中的任何JAR文件。那麼據我所知,從第一次加載jar的任何類時,當你創建該類型的任何對象時,在哪種情況下將會加載一個新類?
那麼,有沒有加載類的第一次的其他方法嗎?
這可能是有益的:
5.3 Creation and Loading上的的JavaTM虛擬機規範
我認爲這非常涵蓋它,雖然當然,類加載是「傳遞」。
如果您正在加載引用X的類(例如,作爲返回值,作爲實例化等),那麼將不得不加載X.
我不確定是否允許加載器延遲實際加載直到真的需要引用。
而且,只要ClassLoader.loadClass(className)
被調用。
AFAIK有在這取決於你是否在客戶端或服務器模式啓動Java活動的差異。 – ZeissS 2010-03-18 19:17:39