『互联网架构』软件架构-JVM(下)
IT人故事会 2021/2/23 8:10:37 次
本次说说Class加载器,类的初始化,JDK自带故障排查工具介绍。
####Class加载器
JVM结束生命周期:
1.System.exit() 直接就退出了
2.正常运行完
3.异常中止
4.手动kill进程
-
加载
1.取得类的二进制字节流,通过类的全限定名称(包名+类名),类加载器,加载到运行时数据区。
2.把二进制字节流中静态存储结果转化为方法区数据结构。
3.在内存中生成代表这个类的java.lang,Class对象,这里是放在堆中。 -
链接
验证
验证类的格式是否正确
(一)文件格式的验证,class
(二)元数据验证,是否有父类,有父类先加载父类,一般的类都有父类,object
(三)字节码验证,数据流是不是合法的符合逻辑的。方法体进行检测
(四)符号引用验证,访问的时候判断是否有权限来进行引用
准备
为类的静态变量(static修饰)分配内存(方法区),并将启初始化改成默认值
解析
常量池中的引用替换为直接引用
- 初始化
1.如果这个类还没有被加载和链接,那就先加载和链接
2.如果类存在直接的父类,先初始化直接父类
3.如果类存在初始化语句,那就依次初始化语句
####类的初始化
- 主动使用
- new,创建类的实例对象
- 反射
- 调用类的静态方法
- 初始化类的子类,此时需要先要初始化父类
- 访问类中的静态变量或者给静态变量赋值
- Jvm启动的时候的启动类
####JDK自带故障排查工具介绍
PS:了解好类的初始化,对于开发尤为重要,对于自带的故障排查工具,对于内存分析的时候很有用。

关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[『互联网架构』软件架构-JVM(下)]http://www.zyiz.net/tech/detail-152034.html
您可能感兴趣的文章:
上一篇:Spring MVC
- 2019-07-07Java编写中容易搞错的一些东西
- 2021-03-06给深度学习模型构建数据迭代器
- 2021-03-06dubbo实战之二:与SpringBoot集成
- 2021-03-06图解 | 你管这玩意叫分布式架构?
- 2021-03-05Spring Security 整合 微信小程序登录的思路探讨
- 2021-03-05笔记整理:技术架构涵盖内容和演变过程总结
- 2021-03-05JavaScript匿名函数、自执行匿名函数
- 2021-03-05Java一些较难面试题整理(一) Java编程
- 2021-03-05dubbo实战之一:准备和初体验
- 2021-03-05线程池使用的N种姿势

扫描二维码或查找【程序员编程王】
可以随时随地学编程啦!
共有 条评论 网友评论