在双亲委托机制中,各个加载器按照父子关系形成了树形结构(逻辑意义),除了根加载器之外,其余的类加载器都有且只有一个父加载器。
类加载器的双亲委托机制
返回String类的ClassLoader
public class MyTest7 { public static void main(String[] args) throws Exception{ Class<?> clazz = Class.forName("java.lang.String"); ClassLoader classLoader = clazz.getClassLoader(); System.out.println(classLoader); } }
返回结果
null
null说明classLoader是启动类加载器
返回自定义类的ClassLoader
public class MyTest7 { public static void main(String[] args) throws Exception{ Class<?> clazz2 = Class.forName("com.example.jvm.classloader.C"); ClassLoader classLoader2 = clazz2.getClassLoader(); System.out.println(classLoader2); } } class C{ }
返回结果
sun.misc.Launcher$AppClassLoader@18b4aac2