类的生命周期

类的生命周期定义在Java虚拟机规范第12章,包括类的加载、链接、初始化和卸载。
Java虚拟机规范第12章
具体类的加载和卸载过程可以在Java虚拟机启动的时候加上-verbose class参数来查看。
下图比较形象地展示了类的整个生命周期:
类的生命周期
具体请参见博客:深入理解JVM(六)——类加载器原理
下面我想提出一个问题,类的加载机制有什么作用?
我们可以看tomcat控制台中关于项目的操作:
Tomcat项目操作
可见,针对项目有开启、停止、重新加载和卸载的操作。
那么问题来了,如果点击停止,已经加载到JVM中的和这个项目相关的所有类都应该卸载掉。如果点击重新加载,卸载掉以前加载的类然后再重新加载一遍。这是如何实现的?
如果要明确的区分属于不同项目的类,每个项目使用的类加载器必须是不同的。
下面一篇文章详细的描述了Tomcat中类加载过程:
违反ClassLoader双亲委派机制三部曲第二部——Tomcat类加载机制
还有一个我在面试时被问到的问题:Java中的类如何实现热更新?
可以参考下面一篇文章:
Java类中热替换的概念、设计与实现

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值