ClassLoader
Class-->ClassLoader
Class 文件有来源:
1)Bootstrap ClassLoader :
2)Extension ClassLoader
3)App ClassLoader :开发者在项目中编写的类
4)Custom ClassLoader

package project03; /* 代码执行顺序 Java源代码(.java文件)->编译->java字节码(.class文件)->类加载器->java.lang.Class->虚拟机 newInstance-->实例对象
Class-->ClassLoader
Class 文件有来源: 1)Bootstrap ClassLoader : 2)Extension ClassLoader 3)App ClassLoader :开发者在项目中编写的类 4)Custom ClassLoader */ import org.junit.Test; public class test02 { @Test public void test03() throws ClassNotFoundException { //1.获取Class对象 Class <?> c = Class.forName("AtStudent.Student"); //2.获取ClassLoader对象 ClassLoader loader = c.getClassLoader(); System.out.println(loader);//sun.misc.Launcher$AppClassLoader@7852e922 } @Test public void test02() { //1.获取Class对象 Class<?> c = MyClass.class; //2.获取ClassLoader对象 ClassLoader loader = c.getClassLoader(); System.out.println(loader);//sun.misc.Launcher$AppClassLoader@7852e922 ClassLoader parent= loader.getParent(); System.out.println(parent);//sun.misc.Launcher$ExtClassLoader@330bedb4 ClassLoader grandparent = parent.getParent(); System.out.println(grandparent);//null } @Test public void test01() { //1.获取Class对象 Class<?> c = String.class; //2.获取ClassLoader对象 ClassLoader loader = c.getClassLoader(); System.out.println(loader);//null } } class MyClass{ public void test03() throws ClassNotFoundException { //1.获取Class对象 Class <?> c = Class.forName("AtStudent1.Student"); //2.获取ClassLoader对象 ClassLoader loader = c.getClassLoader(); System.out.println(loader);//jdk.internal.loader.ClassLoaders$AppClassLoader@7907ec20 } }
posted on 2020-06-02 16:20 happygril3 阅读(162) 评论(0) 收藏 举报
浙公网安备 33010602011771号