JAVA类加载过程详解

我们编写好的Java代码,经过编译变成.class文件,然后类加载器把.class字节码文件加载到JVM中,接着执行我们的代码,最后将类卸载出JVM。

而从类加载到虚拟机到卸载出虚拟机的这一整个生命周期总共可以分为7个步骤,分别为加载、验证、准备、解析、初始化、使用和卸载,其中验证、准备和解析又称为连接阶段。

图片[1]-JAVA类加载过程详解-不念博客
  • 加载阶段:将需要用到的类对应的.class字节码文件加载到虚拟机内存,并在方法区中生成一个java.lang.Class对象,作为程序访问这个类的各种数据的访问入口。
  • 验证阶段:校验加载进来的.class文件中的内容是否符合规范,毕竟编译成.class文件后还是可以人为的对这个文件进行修改,那如果改的乱七八糟,压根不符合虚拟机的规范,那虚拟机就没法执行了
  • 准备阶段:准备阶段是正式为类变量分配内存并设置类变量初始值的阶段,这些变量所使用的内存都将在方法区中进行分配
  • 解析阶段:在解析阶段,将符号引用转换为直接引用。符号引用指的是用符号表示的方法、字段、类等,而直接引用是内存地址的指针。
  • 初始化阶段:在初始化阶段,执行类的初始化代码,包括静态变量的赋值和静态代码块的执行。当类被首次主动使用时,即触发初始化,而被动使用(如引用常量)不会触发初始化。
  • 卸载阶段:是类的生命周期中的最后一阶段,即将方法区中无用的类回收
© 版权声明
THE END
喜欢就支持一下吧
点赞146赞赏 分享
评论 抢沙发
头像
欢迎光临不念博客,留下您的想法和建议,祝您有愉快的一天~
提交
头像

昵称

取消
昵称

    暂无评论内容