是否有保證(默認,系統)Java類加載程序不是嘗試加載正在運行的代碼中未引用的類?一對夫婦的我是什麼意思的例子:Java類加載器是否保證不加載未使用的類?
- 我使用的是
framework.jar
我知道包含另一個library.jar
參考「在IT方面的類,但我使用的是沒有按框架只有這樣一部分」 t包含這些引用。離開library.jar
是否安全? - 靜態塊在第一次加載類時運行。如果沒有運行代碼包含對特定類的引用,是否確定它的靜態塊未運行?
快速測試似乎與上述假設的工作,一下子就沒有太大的意義無論如何加載未使用的類,但沒有任何保證對此有何看法?
此外:似乎我的「靜態塊運行時,一個類首次加載」上面的語句有些不正確。這是絕對可能的加載類(一件事)沒有運行他們(另一件事)。所以我對這兩種情況都很感興趣。保證有關班級沒有收到加載,而沒有收到運行。
AFAIK,這不僅僅是這裏的「參考」,還包括使用。只要不使用類(即在執行字節碼指令中引用),它就不會被加載。當然,這不是規範所保證的,但任何自我尊重的JVM都是這樣表現的。 – sasuke 2010-08-15 18:23:54