CCL揭密
我们的ClassLoader(CCL)的任务是确保代码被编译和更新。
下面描述了它的工作方式:
1、当请求一个类时,先查看它是否在磁盘的当前目录或相应的子目录。
2、如果该类不存在,但源码中有,那么调用Java编译器来生成类文件。
3、如果该类已存在,检查它是否比源码旧。如果是,调用Java编译器来重新生成类文件。
4、如果编译失败,或者由于其它原因不能从现有的源码中生成类文件,返回ClassNotFoundException。
5、如果仍然没有该类,也许它在其它库中,所以调用findSystemClass来寻找该类。
6、如果还是没有,则返回ClassNotFoundException。
7、否则,返回该类。
8、调用findLoadedClass来查看是否存在已装入的类。
9、如果没有,那么采用那种特殊的神奇方式来获取原始字节。
10、如果已有原始字节,调用defineClass将它们转换成Class对象。
11、如果没有原始字节,然后调用findSystemClass查看是否从本地文件系统获取类。
12、如果resolve参数是true,那么调用resolveClass解析Class对象。
13、如果还没有类,返回ClassNotFoundException。
14、否则,将类返回给调用程序。
分享到:
相关推荐
Java 虚拟机中ClassLoader 相关简介 双亲委托机制 Android 中ClassLoader 简介
ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的ClassLoader运行机制 自己写的
破解java加密的ClassLoader.java,在classloader植入破解代码
自定义classloader的使用
ClassLoader原理,ClassLoader原理 ClassLoader原理
Java ClassLoader定制实例
java classloader classpath 张孝祥
理解Java ClassLoader机制
用于验证理解Android中Classloader加载类机制的程序demo,从中可以对比DexClassLoader和PathClassLoader的区别联系。
ClassLoader类加载机制和原理详解
Classloader
关于J2EE服务器的ClassLoader的原理,该文档清晰了揭示了jvm装载类的顺序,同时用户可以自定义修改classLoader的配置 通过该文档,可以加深对Java虚拟机的理解
classloader 源码,自定义classloader
Java中ClassLoader的解析,从ClassLoader的角度分析了JVM,装载类,创建类的对象的整个过程,更清晰的了解JVM的运行机制。
自定义ClassLoader,控制台输入调试。 运行期间 重新载入指定目录的class文件。可实现对于类的功能函数更新。 用到java 反射,@interface 等技术
JVM内存模型,类加载模式工作机制详细,内存屏障,类从被加载到虚拟机内存中开始,直到卸载出内存为止,它的整个生命周期包括了:加载、验证、准备、解析、初始化、使用和卸载这7个阶段。其中,验证、准备和解析这三...
JVM ClassLoader简析.压缩包中文档和示例代码
内容简介: ClassLoader体系结构 类装载器在JVM中并不是唯一的,JVM自带了三个装载器,用户也可以根据自己的需求自定义新的装载器,这些装载器的体系结构可以看作是树状结构,如图1所示: