类的加载:指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后再堆区里创建一个java.lang.Class对象,用来封装类在方法区内的数据结构
类的加载最终产物是位于堆区的Class对象
ClassLoader(类加载器);两种类型的类加载器
1.JVM提供的加载器:
a. 根类加载器(bootstrap)C ++编写,我们无法再java代码中获取该加载器,此加载器主要加载\jdk1.6.0_21\jre\lib\rt.jar文件中的文件。
b. 扩展加载器java代码实现ExtClassLoader 此加载器主要加载\jdk1.6.0_21\jre\lib\extt目录下的jar文件
c. 系统加载器(应用加载器)java代码实现 AppClassLoader 此加载器主要加载classPath中的文件
2.用户自定义的加载器(jajva.lang.ClassLoader的子类)
类加载的委托机制:
加载过程:首先用当前线程类的类加载器去加载,但是该加载器暂时不去加载该类,而是将其委托给其父加载器(注意这里不是指父类),一直委托到BootStrap为止,然后BootStrap在rt.jar中寻找是否有该类文件,如果有即加载成功,否则一级一级往下找。如果一直到当前线程类的类加载器时即最初的发起者还没找到时,就抛出ClassNotFound异常。
- 大小: 10.3 KB
分享到:
相关推荐
类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java ...
看完一个Java加载原理教程后,写了这个自己的类加载器,作个笔记,以便以且使用
自定义类加载器实现自定义加载。自定义类加载器实现自定义加载
当JVM(Java虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构,理解类加载器:J2EE 环境下的 log4j.files
DevLoader.zip tomcat 类加载器
类装载器学习一、类加载器的基本概念 类装载器学习一、类加载器的基本概念 类装载器学习一、类加载器的基本概念
简单的自定义类加载器问候世界hello word,基于磁盘的ClassLoader
Java类加载器可以直接从Maven存储库加载并运行类,能在运行时解决依赖关系
java 类加密 使用类加载器解密加载类 反射执行main
类加载器
ClassLoader 三种类加载方式 Boostrap Extenxsion 以及Application ClassLoad分别适用的场景
JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。 SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。
java应用程序类加载器(ClassLoader for java Application),类似exe4j, 方便启动java程序, 配置灵活,支持多平台选择性配置
(父子关系一般不会以继承的关系实现,而是以组合关系来复用父加载器的代码)工作过程如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请
ClassLoader的API使用和自定义
什么是类加载器和什么是双亲委派机制
类加载器是Java最强大的特征之一。但是开发者常常忘记类加载组件。类加载器是在运行时负责寻找和加载类文件的类。Java允许使用不同的类加载器,甚至自定义的类加载器。类加载器从源文件(通常是.class 或 .jar文件)...
java类加载器学习三、类加载器的委托模式
3-7Tomcat中自定义类加载器的使用与源码实现(1).mp4