请教jvm类加载一个问题
时间:2011-09-22
来源:互联网
通常一个系统跑在服务器上(例如TOMCAT),如果替换上面其中一个class文件,马上就会显示出新的结果,这个是因为服务器的classlorder重新加载这个类吗?是不是热部署?一个同事说不是热部署,是JVM的热点动态编译。。。是不是这个原因呢?
我看classloader源码,loadClass这个方法首先会查询是不是已经加载了,如果已经加载了就会直接返回不会再加载一次,鉴于这个原因我想替换class文件并且显示新的效果,那肯定是classloader重新加载这个类,是不是?谢谢
我看classloader源码,loadClass这个方法首先会查询是不是已经加载了,如果已经加载了就会直接返回不会再加载一次,鉴于这个原因我想替换class文件并且显示新的效果,那肯定是classloader重新加载这个类,是不是?谢谢
作者: gaojava 发布时间: 2011-09-22
应该要重新classloader把class文件加载到内存中吧
作者: dxwapa 发布时间: 2011-09-22
1.类必须要加载之后才能使用
2.是不是热部署这个我不知道(但是这个类肯定被重新加载过),但是我知道肯定不是JVM的热点动态编译,你发布的是CLASS文件,JVM还会编译吗?
2.是不是热部署这个我不知道(但是这个类肯定被重新加载过),但是我知道肯定不是JVM的热点动态编译,你发布的是CLASS文件,JVM还会编译吗?
作者: fainfy 发布时间: 2011-09-22
jvm的工作原理是 当你需要这个类的时候它才去装载 所以当你在调用该类 而该类又没有保存在jvm的方法区的时候就会重新去找你需要的类 也就是会把你新替换的类 给加载进去
作者: lost_guy_in_scut 发布时间: 2011-09-22
不知道。。顶一下
作者: hongzhelin 发布时间: 2011-09-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28