2012-11-26 59 views
6

什麼是JVM熱插拔?JVM Hot Swapping

許多定義表示,此功能允許代碼在脫機期間進行更新。

而諸如熱插拔等一些限制僅限於更新方法體,並且嘗試向類中添加方法和字段將不會成功。

任何人都可以用代碼解釋這一點。

+0

您通常在從IDE調試/運行您的代碼時從IDE執行此操作。您可以對代碼的一部分進行更改,熱交換它,然後使用新代碼繼續運行/調試,而無需重新編譯或重新啓動應用程序。 – assylias

回答

11

這意味着您可以在調試會話中間對代碼進行某些更改,並使這些更改立即生效,而無需重新啓動應用程序。

在某些情況下,這可能是非常方便的功能。但是,通常限制哪些代碼更改可以被切換到正在運行的應用程序中。限制的確切性質取決於您的工具鏈。

+0

不使用JRebel時,對包括方法簽名的類結構進行的任何類型的更改都不能進行熱交換。基本上只有在改變一個方法的主體時才起作用。 – Gimby

+1

因此,這意味着如果某個代碼更改在未重新部署應用程序的情況下生效,那麼這意味着該代碼部分已被熱插拔。 –

+0

如果要編譯代碼或者熱啓動功能本身編譯代碼和熱交換,要進行熱交換。 –