前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >『互联网架构』软件架构-JVM(下)(27)

『互联网架构』软件架构-JVM(下)(27)

作者头像
IT架构圈
发布2019-03-18 11:54:14
4210
发布2019-03-18 11:54:14
举报
文章被收录于专栏:IT架构圈IT架构圈

本次说说Class加载器,类的初始化,JDK自带故障排查工具介绍。

Class加载器

JVM结束生命周期: 1.System.exit() 直接就退出了 2.正常运行完 3.异常中止 4.手动kill进程

  • 加载 1.取得类的二进制字节流,通过类的全限定名称(包名+类名),类加载器,加载到运行时数据区。 2.把二进制字节流中静态存储结果转化为方法区数据结构。 3.在内存中生成代表这个类的java.lang,Class对象,这里是放在堆中。
  • 链接

验证

验证类的格式是否正确 (一)文件格式的验证,class (二)元数据验证,是否有父类,有父类先加载父类,一般的类都有父类,object (三)字节码验证,数据流是不是合法的符合逻辑的。方法体进行检测 (四)符号引用验证,访问的时候判断是否有权限来进行引用

准备

为类的静态变量(static修饰)分配内存(方法区),并将启初始化改成默认值

解析

常量池中的引用替换为直接引用

  • 初始化

1.如果这个类还没有被加载和链接,那就先加载和链接 2.如果类存在直接的父类,先初始化直接父类 3.如果类存在初始化语句,那就依次初始化语句

类的初始化
  • 主动使用
  1. new,创建类的实例对象
  2. 反射
  3. 调用类的静态方法
  4. 初始化类的子类,此时需要先要初始化父类
  5. 访问类中的静态变量或者给静态变量赋值
  6. Jvm启动的时候的启动类
JDK自带故障排查工具介绍

PS:了解好类的初始化,对于开发尤为重要,对于自带的故障排查工具,对于内存分析的时候很有用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程坑太多 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Class加载器
  • 类的初始化
  • JDK自带故障排查工具介绍
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档