一、图示类加载过程
二、作用
jvm的类加载器子系统负责(类装载器Class Loder)加载.Calss文件,经过加载、链接、初始化等阶段,把类相关信息(类型信息、常量、静态变量、即时编译器编译后的代码缓存等)存到方法区也就是元空间。
三、类加载过程
-
加载
-
链接
-
初始化
四、类加载器
加载阶段涉及类加载器的分类(启动类加载器、引导类加载器、系统类加载器、自定义类加载器)以及双亲委派机制,避免了类的重复加载以及程序的安全。常见的类加载器如下:
-
引导类加载器,Bootstrap ClassLoader
底层是C/C++实现的,负责加载Java的核心类库(包名为java、javax、sun等开头的类),没有父加载器
-
扩展类加载器(Extension ClassLoader)
Java实现,派生于ClassLoader类,父加载器为引导类加载器,加载jre/1ib/ext子目录(扩展目录)
-
应用程序类加载器(系统类加载器,AppClassLoader)
Java实现,派生于ClassLoader类,Java应用的类也就是平时我们写的都是它来加载
-
用户自定义类加载器