每日一面——谈谈你对类加载机制的理解
菜鸡每日一面系列打卡30天
每天一道面试题目
助力小伙伴轻松拿offer
坚持就是胜利,我们一起努力!
题目描述
谈谈你对类加载机制的理解。
题目分析
在上一篇文章中我们讲到了,Class文件的结构,而我们不得不思考一个问题,Class文件是如何生效的呢?又或者说,虚拟机如何利用Class文件来做文章呢?这就引出了本文要讲到的类加载机制。
看过之前几篇文章的小伙伴可能已经发现了,有关虚拟机的内容是由表及里,由整体到局部层层递进的,这种递进更有利于全面深刻地学习相关内容。接下来,随菜鸡去看看吧。
题目解答
01
什么是类加载机制
JVM将描述类的数据从Class文件中加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为虚拟机的类加载机制。
一个类从出生到死亡的整个生命周期分为七个阶段:加载,验证,准备,解析,初始化,使用,卸载。而验证,准备,解析三个部分统称为连接。我们可以用下面一张图来展示类的整个生命周期。
这张图描述了类的整个生命周期,其中,加载、验证、准备、初始化和卸载这五个阶段的开始顺序是确定的,而解析阶段则不一定:它在某些情况下可以在初始化阶段之后再开始,这是为了支持Java语言的运行时绑定特性(也称为动态绑定或晚期绑定)。
而类加载的过程,指的是加载、验证、准备、解析、初始化的过程。接下来,我们将对这五个阶段进行逐一的详解。
02
类加载的过程详解
在第一部分中我们提到,类加载的过程,指的是加载、验证、准备、解析、初始化的过程,我们逐一来看,每个阶段的具体情况。
-
加载
验证
准备
以上三点是《Java虚拟机规范》的基本要求,在满足上述要求的基础上,可以灵活地进行实现。
解析
初始化:初始化是类加载的最后一步,是执行类构造器<clinit>()方法的过程。
以上便是菜鸡对类加载机制的一些总结,供大家参考。
字不多,图很多!喜欢的小伙伴三连走起!
学习 | 工作 | 分享
????长按关注“有理想的菜鸡”
只有你想不到,没有你学不到