【读书会第十二期】Java虚拟机类加载机制
【摘要】 代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。
类加载的各个阶段
类加载的过程
从.java文件编译成.class文件,在JVM进行加载,对字节码以及语法进行验证, 准备,并进行解析符号引用或直接引用,进行初始化包括初始化为默认值调用构造函数,在程序中进行使用,最后进行卸载。
类加载的时机
类的加载过程
加载:从文件中读取作为二进制流
验证:验证语法
准备
解析:解析符号引用和直接引用
初始化
验证
文件格式验证:是否符合Java的文件格式要求
元数据验证
字节码验证:不能做不符合语法的要求
符号引用验证:是否已经存在
解析
符号引用:唯一的ID
直接引用:引用的对象必须在内存中
类加载器
实现类的加载动作
不同的加载器加载的类不相同
类加载机制
全盘负责:加载某个Class类,它所关联的类也要由你加载。
双亲委派模型:先让父类去加载,如果父类加载不了再自己去加载
缓存机制:如果缓存中存在了所在的Class对象,那就不需要再重新加载,直接返回,如果不存在要进行加载。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)