JVM总括四-类加载过程双亲委派模型对象实例化
Posted java-zzl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM总括四-类加载过程双亲委派模型对象实例化相关的知识,希望对你有一定的参考价值。
JVM总括四-类加载过程、双亲委派模型、对象实例化
一、 类加载过程
一定要注意每个过程执行的内容!!!!!!
1、Load:
将编译后的.class文件以二进制流的方式加载到JVM内存中,并转化为特定的数据结构,用到的就是classLoad二类加载器。这个过程中校验cafe babe魔法数、常量池、文件长度、是否有父类等。
2、Link:
分为验证、准备、解析三步。
验证:更为详细的验证,比如:final是否规范(二次赋值不规范)、static是否合理(静态方法必须引用静态变量)、类型是否正确。
准备:静态变量分配内存并设定默认值(静态变量不赋值是有个默认值得),这个过程没有对象实例化。
解析:把类中的符号引用转化为直接引用,完成内存结构布局。(符号引用转化为直接引用:例如:test1() { test2(); },这里test1调用test2方法就是符号引用,但实际test2()通过一个指针指向test2方法的内存地址,这个指针负责调用,它就是直接引用)。
3、Init:初始化推迟到实例对象执行,执行静态代码块,为静态变量赋予正确的初始值,递归初始化父类,执行构造器。(先执行静态代码块,再执行静态变量)。
二、双亲委派模型
以上是关于JVM总括四-类加载过程双亲委派模型对象实例化的主要内容,如果未能解决你的问题,请参考以下文章