反射之类加载器(1)

反射之类加载器(1)

一、介绍

本文主要用于学习Java四种类加载器。

二、类加载器

1、引导类加载器 (又称根据加载器)BootStrap ClassLoader

由于并不是java语言实现的,也不是ClassLoader的子类,获取它的对象往往返回null

System.out.println(String.class.getClassLoader());//null
2、扩展类加载器 Extension ClassLoader

负责加载jre/lib/ext扩展库,是ClassLoader的子类。

代码示例:

新建一个Person类,将其导出为一个jar包,将此jar放到jre/lib/ext路径下,打印输出可查看其地址值。

System.out.println(Person.class.getClassLoader());
//地址值为sun.misc.Launcher$ExtClassLoader@33909752
3、应用类加载器 Application ClassLoader

负责ClassPath路径下的类(JDK5.0以后不需要手动生成path),是ClassLoader的子类,用于加载自己写的文件。

System.out.println(Person.class.getClassLoader());
//地址值为sun.misc.Launcher$AppClassLoader@33929101
4、自定义类加载器

当你的程序需要加载特定的目录下的类可以自定义加载器。当程序中的字节码需要加密的时候,那么往往会提供一个自定义类的加载对其进行解码,后面会见到自定义类加载器tomcat

原文地址:https://www.cnblogs.com/iris-/p/13549765.html