面试题:你知道类加载器吗?说说你所了解的类加载器.
问题分析
这个问题考察的是类加载器,我们需要回答有哪些类加载器,以及类加载器加载的内容.
问题回答
类的加载器有三种,分别是:
- 引导类加载器
- 拓展类加载器
- 系统类加载器
引导类加载器
引导类加载器是最上层的类加载器,由C++实现,主要负责Java中核心类的加载,负责将 <JAVA_HOME>/lib
路径下的核心类库或-Xbootclasspath
参数指定的路径下的jar包加载到内存中
拓展类加载器
拓展类加载器负责加载<JAVA_HOME>/lib/ext
目录下或者由系统变量-Djava.ext.dir
指定位路径中的类库
系统类加载器
系统类加载器负责加载系统类路径java -classpath
或-D java.class.path
指定路径下的类库,也就是我们经常用到的classpath路径,开发者可以直接使用系统类加载器,一般情况下该类加载是程序中默认的类加载器,通过ClassLoader#getSystemClassLoader()
方法可以获取到该类加载器。