4
我知道,在典型的條件下,一個類只加載一次。我也知道類是不可變的。因此,一旦這個類被加載,除非它被重新加載(通常不會發生),否則它不能被改變。如果在JVM仍在使用JVM的情況下更新Jar,會發生什麼情況?
對於罐子,同樣的事情是否也適用?如果在JVM仍在運行時更新了Jar,那麼之前會從Jar加載類會發生什麼?
我知道,在典型的條件下,一個類只加載一次。我也知道類是不可變的。因此,一旦這個類被加載,除非它被重新加載(通常不會發生),否則它不能被改變。如果在JVM仍在使用JVM的情況下更新Jar,會發生什麼情況?
對於罐子,同樣的事情是否也適用?如果在JVM仍在運行時更新了Jar,那麼之前會從Jar加載類會發生什麼?
沒有,如果使用該jar中的類,則仍然保留相同的定義,如果在更新的jar中加載了新類,它將被採用。
聽起來你最終可能會得到帶有一些原始類和一些更新類的JVM,這取決於何時Jar被更新以及何時加載類。對正在運行的應用程序可能有什麼影響? – 2010-10-01 23:34:33
@Jim Hurne:是的,你可以。其含義是隨機的MethodNotFound異常 – 2010-10-07 09:57:46