package edu.wtbu;
public class Demo01 {
public static void main(String[] args) throws ClassNotFoundException {
//获取系统类加载器
ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
System.out.println(systemClassLoader);//jdk.internal.loader.ClassLoaders$AppClassLoader@63947c6b
//获取系统类加载器父类加载器-->扩展类加载器
ClassLoader parent = systemClassLoader.getParent();
System.out.println(parent);//jdk.internal.loader.ClassLoaders$PlatformClassLoader@3b07d329
//获取扩展类加载器的父类加载器-->根加载器(C/c++)
ClassLoader parent1 = parent.getParent();
System.out.println(parent1);//null
//测试当前类是哪个加载器加载的
ClassLoader classLoader = Class.forName("edu.wtbu.Demo01").getClassLoader();
System.out.println(classLoader);//jdk.internal.loader.ClassLoaders$AppClassLoader@63947c6b
//测试jdk内置的类是谁加载的
classLoader = Class.forName("java.lang.Object").getClassLoader();
System.out.println(classLoader);//null
//获得系统类加载器加载的路径
System.out.println(System.getProperty("java.class.path"));
//双亲委派机制:检测安全性
//如果手写了与系统类加载器,扩展类加载器,根加载器一样的包,则无法使用
}
}