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)    收藏  举报

导航