【问题标题】:JVM HOT SwappingJVM 热交换
【发布时间】:2012-11-26 12:23:14
【问题描述】:

什么是 JVM 热交换?

许多定义都说此功能允许在调试期间动态更新代码。

还有一些限制,例如热交换,仅限于更新方法体,尝试向类中添加方法和字段不会成功。

谁能用代码解释一下。

【问题讨论】:

  • 您通常在从 IDE 调试/运行代码时从 IDE 执行此操作。您对代码的一部分进行更改,对其进行热交换,然后使用新代码继续运行/调试,而无需重新编译或重新启动您的应用程序。

标签: java hotswap


【解决方案1】:

这意味着您可以在调试会话期间对代码进行某些更改,并使这些更改立即生效,而无需重新启动应用程序。

在某些情况下,这可能是一个非常方便的功能。但是,您通常受限于可以将哪些类型的代码更改热交换到正在运行的应用程序中。限制的确切性质取决于您的工具链。

【讨论】:

  • 不使用 JRebel 时,对类结构的任何更改(包括方法签名)都不能进行热交换。基本上只有在更改方法的主体时才会起作用。
  • 那么这是否意味着如果某个代码更改在没有重新部署应用程序的情况下生效,那么这意味着该部分代码已被热交换。
  • 如果代码被编译或热sapping功能本身编译代码和热交换,热交换发生。
猜你喜欢
  • 2012-04-22
  • 1970-01-01
  • 2013-01-20
  • 2012-06-06
  • 1970-01-01
  • 1970-01-01
  • 2015-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多