jvm类的加载过程
类的加载过程
加载(Loading)
通过一个类的全类名来获取类的二进制字节流存放在方法区。(主要组件,各种ClassLoader)
官方一点的语言:
链接(Linking)
验证(Verification)
校验字节码文件中的信息是否符合虚拟机要求,保证加载类的正确性。
准备(Preparation)
为类变量(静态变量)分配内存并且设置该类变量的值为默认初始值及零值(比如int为0 boolean false)
不会为实例变量分配初始值.
解析(Resolution)
将常量池内的符号引用转换为直接引用的过程。//todo
初始化(Initialization)
初始化就是执行类构造器方法clinit()的过程。(若该类有父类要先保证父类的clinit的方法执行完毕)
初始化完成后才会会把链接时准备阶段的静态变量的值赋予它;
‘clinit’方法在多线程中被同步加锁
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。邮件至 wcfinyourheart@163.com
文章标题:jvm类的加载过程
本文作者:wcf
发布时间:2020-05-28, 16:26:54
最后更新:2020-05-28, 16:26:40
原始链接:http://1007638786.github.io/2020/05/28/jvm-lei-de-jia-zai-guo-cheng/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。