类加载器

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"));

//双亲委派机制:检测安全性
//如果手写了与系统类加载器,扩展类加载器,根加载器一样的包,则无法使用
}
}


 

 

posted @ 2023-03-26 12:54  惊鸿宴远赴人间  阅读(35)  评论(0)    收藏  举报