首页 > 编程知识 正文

java的类加载器,Java类加载机制

时间:2023-05-05 20:08:02 阅读:32208 作者:3874

另一方面,类加载器的类加载器ClassLoader是指将我们的. class文件转换为class对象。 类Class只有加载到jvm中才能运行。 jvm将编译生成的字节码. Class文件加载到内存中,并将其组织到完整的Java APP应用程序中。 此过程由类加载器ClassLoader及其子类完成。 二、jvm的类加载器jvm有三个类加载器。

1、引导类加载器:用于加载BootStrap、Java核心库,用本机代码实现,java.lang.ClassLoader2,扩展类加载器: ExtClassLoader Java虚拟机实现提供了扩展库目录。 类加载器在此目录中搜索并加载Java类。 3、APP应用程序类加载器:根据app类加载器、Java APP应用程序的类路径(CLASSPATH )加载Java类。 通常,Java APP应用程序的类是由其加载的

类名. class.getClassLoader (; 获取类加载器

示例: class loader class loader=AES cipher.class.getclass loader (; 系统. out.println (class loader; //结果: sun.misc.launcher $ ext class loader @ 1c78e 57 class loader class loader=demo1. class.getclass loader (; 系统. out.println (class loader; //结果: sun.misc.launcher $ app类加载器@ 6b 97 FD三、类加载器机制类加载器机制全面负责委托机制

全面负责:

如果一个类加载器执行了将class对象转换为当前. class文件的过程,则有关该类的所有类都将由该类加载器负责加载。 委托机制:

当类加载器尝试自己查找和定义某个类的字节码时,它首先被委派给父类加载器。 父类加载器首先尝试加载该类是来自父类加载器,如果父类加载器可以处理,则不处理子类。 如果父类加载器无法处理,则子类处理加载。 四.类加载器的进程1,类加载阶段是将class文件的二进制数据读入存储器,将其字节流表示的静态存储结构在方法域转换为运行时的数据结构,作为方法域的数据结构的入口,堆备忘类加载器的最终产物是堆内存中的class对象,类加载器提供cache机制。 也就是说,如果. class文件已作为class对象加载,则如果该文件在cache中已存在,则不会生成,而是直接从cache中检索。 2、加载流程:

(1)验证:

验证的主要目的是确保class文件的字节流中包含的内容符合jvm规范,并且没有危害jvm自身安全的代码。

)2)准备:

在准备阶段,主要是通过在方法区域中在静态变量中安装内存来分配缺省初始值

)3)分析:

分析是在常量池中查找对类、接口、字段和方法的符号引用并将其替换为直接引用的过程。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。