1. 程式人生 > >讓兔子飛得更高

讓兔子飛得更高

類的生命週期定義在Java虛擬機器規範第12章,包括類的載入、連結、初始化和解除安裝。 Java虛擬機器規範第12章 具體類的載入和解除安裝過程可以在Java虛擬機器啟動的時候加上-verbose class引數來檢視。 下圖比較形象地展示了類的整個宣告週期: 類的生命週期 具體請參見部落格:深入理解JVM(六)——類載入器原理 下面我想提出一個問題,類的載入機制有什麼作用? 我們可以看tomcat控制檯中關於專案的操作: Tomcat專案操作 可見,針對專案有開啟、停止、重新載入和解除安裝的操作。 那麼問題來了,如果點選停止,已經載入到JVM中的和這個專案相關的所有類都應該解除安裝掉。如果點選重新載入,解除安裝掉以前載入的類然後再重新載入一遍。這是如何實現的? 如果要明確的區分屬於不同專案的類,每個專案使用的類載入器必須是不同的。 下面一篇文章詳細的描述了Tomcat中類載入過程:

違反ClassLoader雙親委派機制三部曲第二部——Tomcat類載入機制 還有一個我在面試時被問到的問題:Java中的類如何實現熱更新? 可以參考下面一篇文章: Java類中熱替換的概念、設計與實現