现在我的同事提出想在java虚拟机运行之后,其中的某个类或者是某个jar包,需要更新,但是他不想停止java虚拟机的运行,而把更新的类或者jar包让java虚拟机重新加载,而且让java虚拟机把已经存在的和这个类或者jar包相关的对象清除,而重新用更新的类和jar包进行事例化,从他一提出这样的想法我就坚决的反对,我觉得这样做实现不了,或者说即使实现的话也会出问题。不知道论坛上的java 高手 对于这个想法怎么看??? 欢迎大家讨论。
解决方案 »
- 问个小小的问题,记事本写
- 一起学java==EnumSet.range方法报错
- (100分)求:mp3播放器代码
- 11月16日-基于Java的企业级Web开发技术
- 请帮忙找一下报错的原因.
- 经常都是这个错误!!!!java.lang.NoClassDefFoundError!!关于jar包在tomcat下路径的问题
- 我的一个JTextPane不能显示垂直滚动条,有什么方法可以显示吗?
- 求助,多媒体文件格式分析方法
- Oracle9i Application Server和Tomcat的疑问
- 编写的APPLICATION程序(.class) 文件怎么在windows下运行呀!?
- dbswing中的JdbComboBox控件和表格JdbTable绑定问题
- 这两个不会做了。
java虚拟机在执行程序之前需要为各个类、模块等等分配内存空间,以便执行期间调用
重新加载更新的类和jar包意味着重新分配空间,虚拟机应该需要重启。我是小菜鸟一个,这样理解不知正不正确。期待牛人解答~
你可以去看看ClassLoader的用法 我知道ClassLoader 可能可以重新加载某个类,但是有这样一个问题,如果程序中正在应用要被更新的类的实例,如果使java虚拟机垃圾回收这些实例,而用刚加载的类,而重新实例化一些对象应用,还是直接就是把要应用这些实例的业务逻辑抛弃。