了解双亲委派模型

发布时间:2022-09-02 19:00

前言

双亲委派模型是一个面试经典题目

类加载

当我们运行java程序时,首先需要将 .java文件经过编译后生成对应 .class文件,然后由 JVM 来加载.class文件到内存中。作为开发人员我们不需要去关心.class文件是如何被加载到 JVM中的,这一切工作都有类加载器去完成。
类的加载过程如图所示:
了解双亲委派模型_第1张图片

  • 加载,加载分为三步:
    1、通过类的全限定性类名获取该类的二进制流;
    2、将该二进制流的静态存储结构转为方法区的运行时数据结构;
    3、在堆中为该类生成一个class对象;
    附jvm内存结构图。
    了解双亲委派模型_第2张图片
  • 验证:验证该class文件中的字节流信息复合虚拟机的要求,不会威胁到jvm的安全;
  • 准备:为class对象的静态变量分配内存,初始化其初始值;
  • 解析:该阶段主要完成符号引用转化成直接引用;
  • 初始化:到了初始化阶段,才开始执行类中定义的java代码;初始化阶段是调用类构造器的过程;
    在第一阶段加载过程中,我们即可以选择使用系统提供的类加载器来完成加载,也可以使用自定义的类加载器来加载。

    类加载器

    在java中,类加载器ClassLoader有四种

  • BootStrapClassLoader: c++编写,加载核心库java.*;
  • Extension ClassLoader: java编写,加载扩展库javax.*;
  • AppClassLoader: java编写,加载程序目录;
  • 自定义ClassLoader:java编写,继承自ClassLoader,定制化加载;

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号