每日一面——谈谈你对类加载机制的理解

菜鸡每日一面系列打卡30

每天一道面试题目 

助力小伙伴轻松拿offer

坚持就是胜利,我们一起努力!

题目描述

谈谈你对类加载机制的理解。

题目分析

在上一篇文章中我们讲到了,Class文件的结构,而我们不得不思考一个问题,Class文件是如何生效的呢?又或者说,虚拟机如何利用Class文件来做文章呢?这就引出了本文要讲到的类加载机制。

看过之前几篇文章的小伙伴可能已经发现了,有关虚拟机的内容是由表及里,由整体到局部层层递进的,这种递进更有利于全面深刻地学习相关内容。接下来,随菜鸡去看看吧。

题目解答

01

什么是类加载机制

JVM将描述类的数据从Class文件中加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为虚拟机的类加载机制。

一个类从出生到死亡的整个生命周期分为七个阶段:加载,验证,准备,解析,初始化,使用,卸载。而验证,准备,解析三个部分统称为连接。我们可以用下面一张图来展示类的整个生命周期。

这张图描述了类的整个生命周期,其中,加载、验证、准备、初始化和卸载这五个阶段的开始顺序是确定的,而解析阶段则不一定:它在某些情况下可以在初始化阶段之后再开始,这是为了支持Java语言的运行时绑定特性(也称为动态绑定或晚期绑定)。

而类加载的过程,指的是加载、验证、准备、解析、初始化的过程。接下来,我们将对这五个阶段进行逐一的详解。

02

类加载的过程详解

在第一部分中我们提到,类加载的过程,指的是加载、验证、准备、解析、初始化的过程,我们逐一来看,每个阶段的具体情况。

  • 加载

  • 以上三点是《Java虚拟机规范》的基本要求,在满足上述要求的基础上,可以灵活地进行实现。

  • 验证

  • 准备

  • 解析

  • 初始化:初始化是类加载的最后一步,是执行类构造器<clinit>()方法的过程。

以上便是菜鸡对类加载机制的一些总结,供大家参考。

字不多,图很多!喜欢的小伙伴三连走起!

学习 | 工作 | 分享

????长按关注“有理想的菜鸡

只有你想不到,没有你学不到

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值