• Java 类装载器工作机制


    类装载器就是寻找类的字节码文件并构造出类在JVM内部表示的对象组件。在java中,类装在器把一个类装入JVM中,要经过以下几个步骤:

    1.装载:查找和导入Class文件

    2链接:执行校验,准备和解析步骤。

      2.1校验:检查载入Class文件数据的正确性

      2.2准备:给类的静态变量分配存储空间

      2.3解析:将符号引用转成直接引用

    3初始化:对类的静态变量、静态代码块执行初始化工作。

      类装载器由ClassLoader及其子类负责,它负责在运行时查找和装入Class字节码文件。JVM在运行时会产生三个ClassLoader:根装载器,ExtClassLoader,AppClassLoader。其中,根装载器不是ClassLoader的子类,它使用C++编写,因此我们在java看不到它,根装载器负责装载JRE的核心类库,如JRE目标下的rt.jar、charsets.jar等。ExtClassLoader AppClassLoader都是ClassLoader的子类。其中ExtClassLoader负责装载JRE扩展目录ext中的JAR类包;AppClassLoader负责装载Classpath路径下的类包。

      这三个类装载器之间存在父子层级的关系,即根装载器是ExtClassLoader的父装载器,ExtClassLoader是AppClassLoader的父装载器。

      类文件被装载解析后,在JVM内将拥有一个对应的java.lang.Class类描述对象,该类的实例都拥有指向这个类描述对象的引用,而类描述对象又拥有指向关联ClassLoader的引用。

  • 相关阅读:
    echarts —— 绘制横向柱状图(圆角、无坐标轴)
    浅析微信支付:(余额提现)企业付款到微信用户零钱或银行卡账户
    浅析微信支付:支付验收示例和验收指引
    浅析微信支付:如何使用沙箱环境测试
    linux内存源码分析
    linux内存源码分析
    linux内存管理源码分析
    linux源码分析
    移植python笔记
    linux中断源码分析
  • 原文地址:https://www.cnblogs.com/alway-july/p/7763963.html
Copyright © 2020-2023  润新知