`
shoppingbill
  • 浏览: 59630 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

类加载器ClassLoader.

    博客分类:
  • Java
阅读更多

当Java需要使用类的时候会执行Class Loader. 预设上,在程序启动之后,主要分为3个Class Loader:BootstrapLoader,ExtClassLoader,AppClassLoader. BootstrapLoader是由C++编写而成,它负责搜索JRE所在的目录下的classes,或lib/ ...jar文件,是否有指定的类载入由系统(sun.boot.class.path)指定.
ExtClassLoader负责搜索JRE所在的目录下的lib/ext目录下的jar文件,classes.是否有指定的类载入由系统(java.ext.dirs)指定。
AppClassLoader则搜索Classpath中是否有class载入.由(java.class.path)指定。
BootstrapLoader 会在JVM启动的之后被载入,之后载入ExtClassLoader.并将parent设为BootStrapLoader.然后BootstrapLoader 会载入AppClassLoader.并将其parent设为ExtClassLoader.

在载入类的时候,每个类的加载器会将其任务交由parent。如果parent找不到。则由自己负责载入,如果还是找不到就会丢NoClassDefFoundError.
我们可以通过Class的getClassLoader()取得载入类的ClassLoader.
分享到:
评论

相关推荐

    ClassLoader

    通过对`ClassLoader`的基本概念、工作原理、双亲委托机制以及不同类型的类加载器的了解,我们可以更好地理解Java类加载的过程及其背后的设计哲学。这对于深入理解Java虚拟机的内部机制以及开发高质量的应用程序都至...

    Java 类加载机制 ClassLoader Class.forName.pdf

    3. **通过`ClassLoader.loadClass()`方法动态加载**:提供了更多的灵活性,可以根据不同的需求加载不同的类。 这三种方式各有特点,具体选择哪种方式取决于实际的应用场景。 #### 六、总结 Java的类加载机制是JVM...

    java类加载器

    类加载器的设计遵循双亲委派模型,它分为三个主要部分:启动类加载器、扩展类加载器和应用类加载器。 #### 二、类加载过程 类加载过程主要包括三个步骤: 1. **加载**:通过类的全限定名找到该类的二进制字节流。...

    ClassLoader类加载器

    3. Application ClassLoader:也称为系统类加载器,负责加载用户类路径`-cp`或`-classpath`指定的所有类。 当一个类被加载时,如果它的父类加载器无法加载该类,那么会将任务委派给子类加载器。这就是著名的"委托...

    java应用程序类加载器,ClassLoader for java Application

    1. **引导类加载器(Bootstrap ClassLoader)**:这是最基础的类加载器,由JVM本身实现,主要负责加载JDK核心库,如rt.jar中的类,这些类通常位于JRE的lib目录下。 2. **扩展类加载器(Extension ClassLoader)**:由...

    Understanding the Java ClassLoader.pdf

    其次是一系列平台类加载器(Platform ClassLoader)和系统类加载器(System ClassLoader),它们分别用于加载平台特定的类库和用户自定义类路径上的类。此外,开发者还可以创建自定义的类加载器,以实现更复杂的功能...

    深入java虚拟机(七)深入源码看java类加载器ClassLoader 1

    《深入Java虚拟机(七)深入源码看java类加载器ClassLoader》 Java类加载器(ClassLoader)在Java运行环境中扮演着至关重要的角色。它负责将类的字节码加载到Java虚拟机(JVM)中,使得程序能够运行。ClassLoader是...

    Java类加载器(ClassLoader)1

    Java类加载器分为三种主要类型:引导类加载器(Bootstrap ClassLoader)、扩展类加载器(Extension ClassLoader)和应用程序类加载器(Application ClassLoader,也称为系统类加载器)。它们共同工作,确保了Java...

    JAVA ClassLoader 讲解 (类加载器)

    ### Java ClassLoader (类加载器)详解 #### 一、教程提示 如果你正在查看这份文档,在线版中你可以点击下面的任何主题直接跳转到相应的部分。 1. **教程提示** 2. **介绍** 3. **类加载器结构** 4. **编译类加载...

    类的加载器资料.zip

    流程图"ClassLoader.png"应该详细描绘了这个过程,包括每个步骤之间的关系和顺序,这对于理解类加载机制非常有帮助。 接下来是"Launcher.java",这是Java应用程序的启动器。在Java程序启动时,`Launcher`类扮演着...

    类加载器加载过程.rar

    在Java编程语言中,类加载器(ClassLoader)是至关重要的组成部分,它负责将类的字节码转换为可执行的Java对象。理解类加载器的工作原理对于深入掌握Java虚拟机(JVM)运行机制和进行高效的问题排查至关重要。在这个...

    Tomcat研究之ClassLoader.pdf

    本文旨在深入剖析Tomcat中特有的类加载器(ClassLoader)体系结构,帮助读者理解Tomcat如何管理和加载不同类型的类库。 #### 二、Tomcat的ClassLoader体系结构 Tomcat采用了独特的类加载机制来处理不同的类库加载...

    类加载器文件

    如果没有指定,则默认使用`ClassLoader.getSystemClassLoader()`作为父加载器。这种设计遵循了**委托模式**,即自定义类加载器在尝试加载类之前会先询问其父加载器是否能加载该类,只有在父加载器无法加载时才会尝试...

    Java类加载器.pdf

    - 使用`ClassLoader.loadClass(String name)`方法显式加载类。 其中,`Class.forName()`方法有两种重载形式,第一个只接受类名作为参数,第二个允许控制是否初始化类以及指定类加载器。如果只使用一个参数的`Class...

    java的ClassLoader类加载器机制

    在 JVM 运行过程中,类加载器会形成一个层次结构,包括引导类加载器(Bootstrap ClassLoader)、扩展类加载器(Extension ClassLoader)和系统类加载器(System ClassLoader)。 引导类加载器(Bootstrap ...

    2 类加载子系统.md,学习代码

    类的加载通常在遇到new、getstatic、putstatic或invokestatic这四个字节码指令时触发,但也可以通过`Class.forName()`或`ClassLoader.loadClass()`等方法手动触发。 7. **类加载的最佳实践** - 合理设计类的加载...

    深入Java虚拟机-ClassLoader.pptx

    用户还可以自定义类加载器,继承`java.lang.ClassLoader`,实现自己的类加载策略。类加载器可以在预期需要某个类时预加载,但如果预加载失败,只有在类被首次主动使用时才会抛出错误。 连接阶段的验证是保证类正确...

    类加载机制ClassLoader

    这个过程可以由系统类加载器、自定义类加载器或者父类加载器完成。加载过程中,如果类已经被加载,那么就不会再次加载。 2. **验证**: 验证是确保.class文件的字节流符合JVM规范,防止恶意代码对系统的破坏。验证...

    ClassLoader类加载机制和原理详解

    当一个类被加载时,它首先会尝试由当前线程的Context ClassLoader进行加载,如果该类加载器无法加载,则向上委托给父类加载器,直至Bootstrap ClassLoader。这种设计可以避免类的重复加载,同时保证核心库的稳定性和...

    Java ClassLoader Tutorial.zip

    Java 类加载器(ClassLoader)是Java虚拟机(JVM)的重要组成部分,它负责在运行时查找并加载类到JVM中。这个教程将深入探讨ClassLoader的工作原理、类型以及如何自定义类加载器。 一、Java ClassLoader 基础 1. 类...

Global site tag (gtag.js) - Google Analytics