jvm类加载系统

111 阅读1分钟

一、图示类加载过程

二、作用

jvm的类加载器子系统负责(类装载器Class Loder)加载.Calss文件,经过加载、链接、初始化等阶段,把类相关信息(类型信息、常量、静态变量、即时编译器编译后的代码缓存等)存到方法区也就是元空间。

三、类加载过程

  1. 加载

  2. 链接

  3. 初始化

四、类加载器

加载阶段涉及类加载器的分类(启动类加载器、引导类加载器、系统类加载器、自定义类加载器)以及双亲委派机制,避免了类的重复加载以及程序的安全。常见的类加载器如下:

  • 引导类加载器,Bootstrap ClassLoader

    底层是C/C++实现的,负责加载Java的核心类库(包名为java、javax、sun等开头的类),没有父加载器

  • 扩展类加载器(Extension ClassLoader)

    Java实现,派生于ClassLoader类,父加载器为引导类加载器,加载jre/1ib/ext子目录(扩展目录)

  • 应用程序类加载器(系统类加载器,AppClassLoader)

    Java实现,派生于ClassLoader类,Java应用的类也就是平时我们写的都是它来加载

  • 用户自定义类加载器

五、深入学习

B站尚硅谷宋红康JVM全套教程(详解java虚拟机)