下载此文档

06.类装载器.pptx


文档分类:汽车/机械/制造 | 页数:约31页 举报非法文档有奖
1/31
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/31 下载此文档
文档列表 文档介绍
深入JVM内核——原理、诊断与优化第6周
法律声明
【声明】本视频和幻灯片为炼数成金网络课程的教学资料,所有资料只能在课程内使用,不得在课程以外范围散播,违者将可能被追究法律和经济责任。
课程详情访问炼数成金培训网站
http://edu.
类装载器
class装载验证流程
什么是类装载器ClassLoader
JDK中ClassLoader默认设计模式
打破常规模式
热替换
class装载验证流程
加载
链接
验证
准备
解析
初始化
class装载验证流程-加载
装载类的第一个阶段
取得类的二进制流
转为方法区数据结构

class装载验证流程-链接验证
链接-> 验证
目的:保证Class流的格式是正确的
文件格式的验证
是否以0xCAFEBABE开头
版本号是否合理
元数据验证
是否有父类
继承了final类?
非抽象类实现了所有的抽象方法
字节码验证(很复杂)
运行检查
栈数据类型和操作码数据参数吻合
跳转指令指定到合理的位置
符号引用验证
常量池中描述类是否存在
访问的方法或字段是否存在且有足够的权限
class装载验证流程-链接准备
链接-> 准备
分配内存,并为类设置初始值(方法区中)
public static int v=1;
在准备阶段中,v会被设置为0
在初始化的<clinit>中才会被设置为1
对于static final类型,在准备阶段就会被赋上正确的值
public static final int v=1;
class装载验证流程- 链接解析
链接-> 解析
符号引用替换为直接引用
字符串
引用对象不一定被加载
指针或者地址偏移量
引用对象一定在内存
class装载验证流程–初始化
执行类构造器<clinit>
static变量赋值语句
static{}语句
子类的<clinit>调用前保证父类的<clinit>被调用
<clinit>是线程安全的
class装载验证流程

06.类装载器 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数31
  • 收藏数0 收藏
  • 顶次数0
  • 上传人w447750
  • 文件大小997 KB
  • 时间2018-06-09