【java】类加载器

一、什么是类加载器,其作用

类加载器就加载字节码文件(.class)

二、java源文件的运行过程:

1、首先需要有个java源文件,例如demo.java
2、利用编译器(jvm)对源文件进行编译变成字节码文件,形成demo.class
3、想让其demo.class运行,需要借助类加载器让其加载到java运行环境内存,形成一个字节码文件对象。
【java】类加载器
补充:如果想修改运行结果,那么有两种方式:
1、修改源文件,然后重新编译并运行。
2、修改字节码对象。

三、类加载器的种类:

1)BootStrap:引导类加载器:加载都是最基础的文件
2)ExtClassLoader:扩展类加载器:加载都是基础的文件
3)AppClassLoader:应用类加载器:三方jar包和自己编写java文件

如何获取类加载器?
从第一幅图中我们可以看到,在java运行环境中,运行的是字节码对象,其实字节码对象知道自己是通过哪个类加载器加载到内存中的,为此,我们只要能获取字节码对象,那么我就可以知道字节码对象的类加载器。
格式:ClassLoader 字节码对象.getClassLoader();

四、获取类加载器的实例:

如果我有一个字节码文件,demo.class ,

package class_loader;

import java.net.URL;

public class demo {
	
	//1获取字节码文件的加载器
	Class clazz =demo.class;//获取demo的字节码对象。
	ClassLoader classloader=clazz.getClassLoader();//获取类加载器
	
	//2、根据字节码对象获取其他资源
	//getResource中的参数是相对路径,是相对与src路径的。
	//path就是相对于src的地址
	String path=classloader.getResource("123.txt").getPath();
	
	

}