1、类加载子系统中有哪些常用类加载器?
1、BootStrapClassLoader(负责加载基础类库中的类,例如Object,String....)
2、ExtClassLoader(负责加载扩展类库中的类 ext/...)
3、AppClassLoader(负责加载classpath路径下我们自己定义的类)
4、自定义ClassLoader(可以指定自己要加载的路径或加载方式)
2、如何获取常用的类加载器?
1.AppClassLoader (应用加载器,默认加载ClassPath路径中的类-大部分是我们自己写的类)
ClassLoader appClassLoader = ClassLoader.getSystemClassLoader();
2.ExtClassLoader(扩展类加载器,负责加载ext包中的类)
ClassLoader extClassLoader = appClassLoader.getParent();
3.BootStrapClassLoader(根类加载器,负责加载基础类库中的类-rt.jar)
ClassLoader bootStrapClassLoader=extClassLoader.getParent();
String类的类加载器是什么?
ClassLoader classLoader = String.class.getClassLoader();
获取当类ClassLoaderTests的类加载器
classLoader = ClassLoaderTest.class.getClassLoader();
3、什么是双亲委派类加载模型?
双亲委派可以简单的理解为依次向上询问类是否已经加载过,假如类加载过则无需再次加载。假设没有加载过,则从顶层(BootStrapClassLoader)向下依次尝试是否可以加载此类,假设可以则对类进行加载。
标签:类库,String,ClassLoader,BootStrapClassLoader,JVM,子系统,中类,加载 From: https://www.cnblogs.com/yangcrazy/p/17119285.html