Java中的類加載與類卸載

類加載

Java中的代碼都寫在類裏面,源代碼(.java文件)經過編譯後會變成字節碼(.class文件),當Java應用程序運行時,JVM會加載要用到的類。
負責類加載的是java.lang.ClassLoader的對象,ClassLoader的對象會根據類的binary name(不知道怎麼翻譯,二進制名?)來讀取類的字節碼,然後把這些字節碼加載到JVM的方法區裏,同時會在heap裏面創建一個Class對象,這個Class對象是類的元數據和它的對象通信的接口。類在heap中的Class對象和加載它的ClassLoader對象之間有強引用。

類卸載

不像類加載,Java中沒有提供顯式進行類卸載的API,但是如果加載類的ClassLoader對象被垃圾回收器回收的話,這個類就會被卸載。所以我們可以自己實現ClassLoader,自己加載類,然後對ClassLoader對象的引用賦值爲null,等ClassLoader對象剩下的引用數量爲0時會被回收,這樣就達到卸載類的目的了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章