Java ClassLoader

来源:互联网 发布:中美贸易逆差数据 编辑:程序博客网 时间:2024/04/26 05:22
Java类加载JVM包含三种ClassLoader,Bootstrap ClassLoader、Extension ClassLoader和Application ClassLoader。其中,Bootstrap ClassLoader用本地语言实现,一般为C/C++,另外两种用Java语言实现。Bootstrap用于载入Java核心类(所有java.*package下的类),Extension用于加载Java扩展类(所有位于javax.*package下的类和存放在jreext目录下的类),Application用于加载应用程序本身)。一个类被加载到内存之后,JVM采用(ClassLoader,Fully Qualified Class Name,ClassLoader Instance)的三元组来唯一的表示此类)即(类加载器,包含Package的类名,类加载器的实例)。想要编写自己的ClassLoader,需要继承java.lang.ClassLoader,并覆盖其中的方法。ClassLoader的主要方法如下:loadClass(String name,boolean resolve):此方法是加载Java类的入口。defineClass():此方法指ClassLoader最重要的方法,该方法定义了如何将一个二进制数据流转化为Class。注意此方法是final类型的,即不允许overide。