JAVA类加载器分析-比较热部署和"Hot Code Replace"

3 篇文章 0 订阅

最近复习JAVA类加载的相关知识,看到了热部署的实现原理,突然感觉这个好像不是以前Eclipse调试Tomcat的时候,修改代码不需要重启就可以调试的功能.查阅资料比较之后,发现不需要重启就可以继续调试的功能是"Hot Code Replace",我个人比较这两者之间的区别如下:

 

 

1)如果源文件有修改

热部署会会导致JVM里面有2个不同的Class存在,他们的类加载器不一样.他不会修改JVM已有对象

"Hot Code Replace"会用新的Class替代原有的Class,并且已有的instance都会被替换.也就是现有系统相关对象会被替换

 

2)应用场景

热部署更正规,产品环境不推荐,因为会出现内存泄露的问题. 但是测试环境之类的很方便,不需要重启.

"Hot Code Replace",只能应用于开发环境,比如Eclipse或者一些IDE开发环境.Hot Code Replace本身就是Java Platform Debugger Architecture的一部分.

 

3)对Class修改的限制

热部署对Class的修改没有什么限制,

"Hot Code Replace",不能修改Class的signature ,比如不能修改方法,不能添加新的属性,如果修改Signature,在Eclipse上就会有下面的对话框弹出.这个修改限制,也是为什么新的Class可以替换现有的Class及Instance.



 

 

 

 

参考地址:

What is hot code replace?  

http://wiki.eclipse.org/FAQ_What_is_hot_code_replace%3F 

 

 

How to Set Up Hot Code Replacement with Tomcat and Eclipse: 

http://blog.redfin.com/devblog/2009/09/how_to_set_up_hot_code_replacement_with_tomcat_and_eclipse.html#.U5k47fm1bac

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值