介绍类加载过程?什么是双亲委派模型?
一般来说,我们把Java的类加载过程分为三个主要步骤:加载、链接、初始化。

首先是加载阶段,它是Java把字节码数据从不同的数据源读取到JVM中,并映射为JVM认可的数据机构(Class对象)

加载阶段是用户参与的阶段,我们可以自定义类加载器,去实现自己的类加载过程。

第二阶段是链接,这是核心的步骤,简单来说把原始的类定义信息平滑地转入JVM运行的过程中。这里可以细分为三个步骤:

    验证,虚拟机安全的重要保障,JVM需要核验字节信息是符合Java虚拟机规范的。防止恶意信息
    准备,创建类或接口中的静态变量,并初始化静态变量的初始值。重点在于分配所需要的内存空间。
    解析,在这一步会将常量池中的符号引用替换为直接引用。

最后是初始化阶段,这一步真正去执行类初始化的代码逻辑,包括静态字段赋值的动作,以及执行类定义中的静态初始化块的逻辑。

双亲委派模型,简单说就是类加载器试图加载某个类型的时候,除非父加载器找不到相应类型,否则尽量将这个任务代理给当前加载器的父加载器去做。使用委派模型的目的是避免重复加载Java类型。

更多精选文章
标签: 加载、委派、初始化、jvm、静态
一个创业中的苦逼程序员
笔试题


刷题


简历模板


AI算法


大数据


内推


推荐阅读:
阿里巴巴笔试面试大全
腾讯笔试面试大全
百度笔试面试大全
今日头条笔试面试大全
网易笔试面试大全
Google笔试面试大全
更多笔试面试大全
隐藏