类加载器

tomcat类加载器深入研究笔记

爱⌒轻易说出口 提交于 2019-12-01 01:49:18
1、 StandardClassLoader 继承自URLClassLoader ,和URLClassLoader相比没有添加任务新的功能。这个类已经被 tomcat7.x废弃掉 了,官方准备在 tomcat8.x版本中去掉这个类 。 2、 BootStrapClassLoader 是用本地代码实现的, 它负责加载核心的java class(即所有java.*开头的类) 。另外JVM还提供了两个类加载器, ExtensionClassLoader 和 SystemClassLoader 。都是用java编写的, 都是java.lang.ClassLoader的子类 ,由Bootstrap ClassLoader加载后才能使用。 其中 Extension ClassLoader负责加载扩展的java class(例如所有的javax.*开头的类和存放在JRE的ext目录下的类) , System ClassLoader负责加载应用程序自身的类。 3、 URLClassLoader是SecureClassLoader的子类 4、 URLClassLoader通过 findClass方法 来加载一个类。 5、 Package的创建中会搜集jar包中manifest中的一些描述信息。 6、 要自定义类加载器,需要继承 java.lang.ClassLoader

Java的classloader

懵懂的女人 提交于 2019-11-28 10:24:06
类加载器的基本概念 类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实例用来表示一个 Java 类。通过此实例的 newInstance()方法就可以创建出该类的一个对象。 基本上所有的类加载器都是 java.lang.ClassLoader类的一个实例。 下面详细介绍这个 Java 类。 java.lang.ClassLoader类的基本职责就是根据一个指定的类的名称,找到或者生成其对应的字节代码,然后从这些字节代码中定义出一个 Java 类,即 java.lang.Class类的一个实例。除此之外,ClassLoader还负责加载 Java 应用所需的资源,如图像文件和配置文件等。为了完成加载类的这个职责,ClassLoader提供了一系列的方法,比较重要的方法如 表 1所示。关于这些方法的细节会在下面进行介绍。 表 1. ClassLoader 中与加载类相关的方法 方法 说明 getParent() 返回该类加载器的父类加载器。 loadClass(String