`

Java类加载器解析

阅读更多

作者:狂放不羁
网址:http://yuquan-nana.iteye.com

>>>转载请注明出处!<<<

一:分类

Java中的类加载器可以分为四类:

1 Bootstrp loader

Bootstrp加载器是用C++语言写的,它是在Java虚拟机启动后初始化的,它主要负责加载%JAVA_HOME%/jre/lib以及%JAVA_HOME%/jre/classes中的类。

2 ExtClassLoader 

   Bootstrp loader加载ExtClassLoader,并且将ExtClassLoader的父加载器设置为Bootstrp loader.ExtClassLoader主要加载%JAVA_HOME%/jre/lib/ext中的jar文档,以及此路径下的所有classes目录。

3 AppClassLoader

  Bootstrp loader加载完ExtClassLoader后,就会加载AppClassLoader,并且将AppClassLoader的父加载器指定为ExtClassLoader。AppClassLoader主要负责加载classpath所指定的位置的类或者是jar文档。

4 URLClassLoader

    URLClassLoader是我们可以自定义的加载器,我们可以通过指定一个URL对象来创建此加载器,它所加载路径就是URL所代表的逻辑位置。并且它的父加载器是AppClassLoader。

 

(*注意:某个加载器的父加载器与加载它的加载器没有联系,父加载器是按照规定的规则指定的)

二:委托模型

   所谓委托模型就是指:当一个加载器在加载某个类的时候先让父加载器去加载,父加载器再让其父加载器加载,依此类推,如果所有的父加载器都不能加载,再由自己来加载,而如果此时自己也不能加载,则产生java.lang.NoClassDefFoundError错误。

   委托模型最大的好处就是提高了java的安全性,比如:如果加载器的父加载器已经加载了某个类,那么自己就不能再加载此类了,这样就使得一些与java类库中同名的类不能加载进来。

三:ClassLoader以及Class

   我们都知道java中的每个类(包括接口)编译后都会生成一个.class文件,当.class文件被加载器加载到内存中后,就会生成一个Class对象的实例,此实例有一个指向加载它自己的加载器的实例引用。而我们每个类的实例都会有一个指向此实例所对应的类的Class对象。并且值得我们注意的是如果一个类被不同的加载器加载,那么对于每个类加载器来说类的静态初始化块都要执行。

 

3
3
分享到:
评论
1 楼 xfei6868 2009-12-19  
关于java服务器的详细加载顺序能详细解释吗?

相关推荐

    全面解析Java类加载器

    深入理解和探究Java类加载机制—-  1.java.lang.ClassLoader类介绍 ...  Java 中的类加载器大致可以分成两类,一类是系统提供的,另外一类则是由 Java 应用开发人员编写的。  引导类加载器(bootstrap class loade

    深入理解java类加载机制

    此外,我们还会探讨Java程序的类加载器和双亲委派机制,以及自定义类加载器和类卸载的实现原理和应用方法。 总的来说,本资源将为Java程序员提供全面的Java字节码和类加载原理和实践经验。通过学习本资源,开发人员将...

    Java类加载器层次结构原理解析

    主要介绍了Java类加载器层次结构原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Java语言中的自定义类加载器实例解析

    主要介绍了Java语言中的自定义类加载器实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

    Java基于自定义类加载器实现热部署过程解析

    主要介绍了Java基于自定义类加载器实现热部署过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Java虚拟机JVM类加载初始化

    由Java虚拟机自带的默认加载器(根加载器、扩展加载器、系统加载器)所加载的类在JVM生命周期中始终不被卸载。所以这些类的Class对象(我称其为实例的模板对象)始终能被触及!而由用户自定义的类加载器所加载的类会...

    Java类加载器ClassLoader用法解析

    主要介绍了Java类加载器ClassLoader用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Java类加载机制.doc

    对java的类加载机制,进行了深入的解析,并详细的实现了客户化加载器。

    解析Java虚拟机中类的初始化及加载器的父委托机制共14页

    解析Java虚拟机中类的初始化及加载器的父委托机制共14页.pdf.zip

    详解JAVA类加载机制(推荐)

    JAVA源码编译由三个过程组成: 1、源码编译机制。 2、类加载机制 ...系统可能在第一次使用某个类时加载该类,也可能采用预加载机制来加载某个类,当运行某个java程序时,会启动一个java虚拟机进程,两次运行

    Java 类加载机制详解

    在我们使用一个类之前,JVM需要先将该类的字节码文件(.class文件)从磁盘、网络或其他来源加载到内存中,并对字节码进行解析生成对应的Class对象,这是类加载器的功能。我们可以利用类加载器,实现类的动态加载。 ...

    JAVA提高第七篇 类加载器解析

    主要为大家详细介绍了JAVA提高第七篇类加载器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    链接器和加载器.PDF(链接器和加载器 Beta 2)

    《链接器和加载器》讲述构建程序的关键工具——链接器和加载器,内容包括链接和加载、体系结构、目标文件、存储分配、符号管理、库、重定位、加载和覆盖、共享库、动态链接和加载、动态链接的共享库,以及着眼于成熟...

    Java虚拟机类加载机制浅谈

    JVM主要包含三大核心部分:运行时数据区,类加载器和执行引擎。  虚拟机将描述类的数据从Class文件加载到内存,并对数据进行校验、准备、解析和初始化,终会形成可以被虚拟机使用的Java类型,这是一个虚拟机的类...

    深入解析Java中的Class Loader类加载器

    主要介绍了Java中的类加载器,是Java入门学习中的基础知识,需要的朋友可以参考下

    Java类加载机制浅析

    4、类加载器ClassLoader  4.1类加载器分类  5、双亲委派机制   5.1、检查某个类是否已经加载   5.2、加载顺序  5.3、打破双亲委派机制 所谓类加载机制就是 虚拟机把Class文件加载到内存 并对数据进行校验,...

    JAVA_API1.6文档(中文)

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    java深入解析

    本书分为5章,分别为“基本概念”,“运算符与表达式”,“String类”,“方法,构造器与变量”,“类与接口”。 通过以上方面介绍那些常见、常用却少为人知的Java知识。虽然内容相对基本,但都不是容易解答的。目前...

    Java日志体系全解析:架构师必掌握的关键技术和最佳实践

    但JCL本身存在性能问题和类加载器问题。 为解决这些问题,SLF4J(Simple Logging Facade for Java)应运而生。它不仅提供了一个更为简洁高效的日志门面,还通过各种适配器支持了众多日志实现,如log4j、logback等。...

Global site tag (gtag.js) - Google Analytics