`
lantian_123
  • 浏览: 1370105 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

类的加载器

    博客分类:
  • Java
JVM 
阅读更多

类的加载:指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后再堆区里创建一个java.lang.Class对象,用来封装类在方法区内的数据结构

类的加载最终产物是位于堆区的Class对象

ClassLoader(类加载器);两种类型的类加载器
1.JVM
提供的加载器:

a.       根类加载器(bootstrap)C ++编写,我们无法再java代码中获取该加载器,此加载器主要加载\jdk1.6.0_21\jre\lib\rt.jar文件中的文件。

b.       扩展加载器java代码实现ExtClassLoader  此加载器主要加载\jdk1.6.0_21\jre\lib\extt目录下的jar文件

c.       系统加载器(应用加载器)java代码实现 AppClassLoader 此加载器主要加载classPath中的文件

2.用户自定义的加载器(jajva.lang.ClassLoader的子类)

 

类加载的委托机制:

 

                                                                         

 

加载过程:首先用当前线程类的类加载器去加载,但是该加载器暂时不去加载该类,而是将其委托给其父加载器(注意这里不是指父类),一直委托到BootStrap为止,然后BootStraprt.jar中寻找是否有该类文件,如果有即加载成功,否则一级一级往下找。如果一直到当前线程类的类加载器时即最初的发起者还没找到时,就抛出ClassNotFound异常。

  • 大小: 10.3 KB
分享到:
评论

相关推荐

    java类加载器

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

    类加载器文件

    ### 类加载器详解 #### 一、类加载器概述 **类加载器(ClassLoader)**是Java虚拟机(JVM)中的一个重要组成部分,它负责将编译好的`.class`文件加载到JVM中,使得这些类可以在Java环境中运行。类加载器不仅能够加载类...

    自定义类加载器实现自定义加载

    - Java中的类加载器采用双亲委派模型,即一个类首先由启动类加载器Bootstrap ClassLoader尝试加载,如果找不到则交给扩展类加载器Extension ClassLoader,再找不到则交由应用程序类加载器AppClassLoader,最后如果...

    Java类加载器原理

    当JVM启动时,如果需要使用某个类,对应的类加载器会将这个类的字节码加载到内存中。类加载器的主要任务是动态加载和管理类,使得程序可以在运行时发现和使用新的类。此外,类加载器具有缓存机制,如果已经加载过一...

    tomcat类加载器

    类加载器遵循双亲委派模型,这意味着当一个类加载器尝试加载类时,它首先会将请求委托给其父类加载器,直到到达顶层的Bootstrap ClassLoader,如果父类加载器无法找到该类,子类加载器才会尝试自己加载。 在Tomcat...

    自定义类加载器

    在Java编程语言中,类加载器(ClassLoader)是运行时环境的一个重要组成部分,它负责将类的字节码从各种来源加载到Java虚拟机(JVM)中,从而使得程序可以执行。自定义类加载器允许开发人员根据特定需求定制加载类的...

    类加载器(java)

    首先,我们来了解一下JVM启动时的初始类加载器层次结构。这个层次结构通常由三个主要的类加载器组成: 1. **bootstrap class loader**:这是最基础的类加载器,由C++实现,负责加载JRE核心库,如rt.jar,它包含了...

    ClassLoader类加载器

    1. Bootstrap ClassLoader:这是最基础的类加载器,由JVM本身实现,负责加载JRE的`<JAVA_HOME>/lib`目录下的核心类库,或者被`-Xbootclasspath`参数指定的路径中的类。 2. Extension ClassLoader:扩展类加载器,...

    JVM类加载器说明文档

    3. 如果父类加载器为 null(最顶层的启动类加载器),那么会使用启动类加载器进行加载。 4. 如果整个加载过程都没有找到对应的类,就会抛出 ClassNotFoundException。 1.4 Java 程序动态扩展方式 Java 程序的动态...

    java类加载器实例

    类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java ...

    Java的类加载器

    加载器按照双亲委派模型工作,即从顶级的启动类加载器开始,逐级向下查找,直到找到目标类。 2. 类加载器类型: - 启动类加载器(Bootstrap ClassLoader):加载JDK核心类库,如rt.jar。 - 扩展类加载器...

    ModRunJava类加载器可以直接从Maven存储库加载并运行类

    Java开发中的类加载器是Java运行环境的核心组件之一,它负责查找、加载和初始化类文件。在传统的Java应用中,类通常是从硬盘上的类路径(ClassPath)或模块路径(ModulePath)中加载的。然而,随着开发模式的演变,...

    自定义Java类加载器

    Java类加载器是Java虚拟机(JVM)的关键组成部分,它负责查找并加载类到内存中,使得程序能够运行。自定义Java类加载器允许我们根据特定需求扩展默认的加载机制,例如,从非标准位置加载类或者实现动态加载。在Java...

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

    在压缩包文件`javalauncher`中,可能包含了一个用于启动Java应用程序的自定义类加载器或者类加载辅助工具,帮助开发者更好地管理类的加载过程。这类工具通常会提供更方便的命令行参数,以便于指定类路径、加载特定的...

    java 类加载器 加密

    Java 类加载器是Java运行时环境的一个重要组成部分,它的主要职责是将编译后的字节码(.class文件)加载到JVM中,使得程序能够运行。类加载器的机制保证了类的唯一性,同时也提供了灵活性,允许我们自定义加载逻辑。...

    java 静态代码块通过类加载器获取资源文件例子

    Java支持多种类加载器,包括启动类加载器(Bootstrap ClassLoader)、扩展类加载器(Extension ClassLoader)和应用程序类加载器(Application ClassLoader)。当类首次被引用时,对应的类加载器会查找并加载该类的...

    网络类加载器实现

    默认的类加载器包括bootstrap classloader(引导类加载器)、extension classloader(扩展类加载器)和appclassloader(应用程序类加载器),它们按照双亲委托模型进行工作,从基础到具体逐层尝试加载类。...

    类加载器代码

    类加载器不仅涉及程序的启动,还关系到类的动态加载、类间的隔离以及安全性等核心功能。 1. **类加载过程** 类加载分为三个主要阶段:加载、验证、准备、解析和初始化。加载是查找并加载类的字节码;验证确保字节...

    黑马程序员------类加载器学习注意点

    在Java编程语言中,类加载器(ClassLoader)是至关重要的组成部分,它负责将类的字节码从磁盘、网络或其他存储介质加载到JVM(Java虚拟机)中,并将其转换为可执行的Java对象。类加载器的学习是深入理解Java运行机制...

Global site tag (gtag.js) - Google Analytics