在什么時候一個java class/interface會被卸載呢?Sun公司的原話是這么說的:"class or interface may be unloaded if and only if its class loader is unreachable. Classes loaded by the bootstrap loader may not be unloaded."
其實一個已經(jīng)加載的類是無法被更新的,如果你試圖用同一個ClassLoader再次加載同一個類,就會得到異常(java.lang.LinkageError: duplicate class definition),我們只能夠重新創(chuàng)建一個新的ClassLoader實例來再次加載新類。至于原來已經(jīng)加載的類,開發(fā)人員不必去管它,因為它可能還有實例正在被使用,只要相關(guān)的實例都被內(nèi)存回收了,那么JVM就會在適當?shù)臅r候把不會再使用的類卸載。