zoukankan      html  css  js  c++  java
  • jvm类加载机制

    虚拟机把描述类的Class文件加载到内存,并进行校验、准备、解析、初始化,形成jvm可以直接使用的类型,这被称为jvm的类加载机制。

    1. 加载:根据全限定名加载二进制文件到jvm内存。

    2.校验: 根据java虚拟机规范,对文件进行验证。

    3. 准备: 为类变量分配初始值,在方法区分配。

    4. 解析:将符号引入解析为直接引用。

    5. 初始化,根据代码逻辑进行初始化。

    在加载过程中,如何通过全限定名来加载二进制字节流?这是由被称为类加载器的代码模块实现的。

    对于虚拟机来讲,存在两种不同的类加载器,第一种是 “启动类加载器”,为jvm自身的一部分。另一种则包括其他所有,位于jvm之外。

    在类加载器中,除了启动类加载器,其余所有类加载器都有自己的父类,这样的机制被称为双亲委派机制。

    它的工作流程如下:当一个类加载器收到了类加载的请求,它自己不会首先去尝试加载,而是请父类加载。只有父类无法加载的情况下,才会尝试着自己去加载。

    这样做的目的是保证类的唯一性。

  • 相关阅读:
    python--异常处理
    Codeforces 1499D
    Codeforces 1263E
    Codeforces 1493D
    Codeforces 1492D
    Codeforces 1490G
    Codeforces 1487E
    Codeforces 1485D
    Codeforces 1485C
    P6917 [ICPC2016 WF]Balanced Diet
  • 原文地址:https://www.cnblogs.com/zhangjwcode/p/6803687.html
Copyright © 2011-2022 走看看