今天学习了类加载器。分为四类:引导类加载器,扩展类加载器,应用程序类加载器,自定义类加载器。
大概介绍下四种类加载器的作用:
引导类加载器(Bootstrap ClassLoader)
1.引导类加载器使用C/C++语言实现,在JVM内部
2.用于加载Java核心类库
3.不继承ClassLoader
4.还用于加载扩展类加载器和应用程序类加载器
5.只加载包名为java,javax,sun开头的类
扩展类加载器(Extension ClassLoader)
1.使用java语言编写,JVM自带
2.继承自ClassLoader
3.父类加载器为启动类加载器
4.从java.ext.dirs指定的路径下加载类库;或者从JDK安装目录的jre/lib/ext目录下加载类库
5.如果用户自定义的jar包放在jre/lib/ext下,也会自动由扩展类加载器加载
应用程序类加载器(AppClassLoader或者称为系统类加载器)
1.使用java语言编写,JVM自带
2.继承自ClassLoader
3.父类加载器为扩展类加载器
4.负责加载环境变量classpath或系统属性java.class.path指定的类库
5.java中自己写的类都是由应用程序类加载器加载的
6.可以通过ClassLoader.getSystemClassLoader()方法获取该类加载器