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

ClassLoader 机制

    博客分类:
  • JVM
阅读更多
类加载就是通过类的全限定名来读取类二进制字节流。

类加载器 分两种模型 双亲委派模型 VS 破坏双亲委派模型(不做了解)

双亲委派模型就是: 子加载器先请求父加载器,看父加载器能否加载,若不能再由自己处理。

类加载器分为三类(或这四类)
1. 启动类加载器 (负责加载%JAVA_HOME%\lib下的类库, 比如 rt.jar, 启动类加载器不能被Java程序直接引用)
2. 扩展类加载器 (负责加载%JAVA_HOME%\lib\ext下的类库, 启动类加载器能被Java程序直接使用扩展)
3. 应用程序加载器 (也叫系统类加载器, 负责加载ClassPath上指定的类库, 一般情况是程序中默认的加载器)
4. 自定义加载器

分析loadClass方法:
// 检查该类是否已经加载过
Class c = findLoadedClass(name);
if(c == null) {
    try {
        if(parent != null) { 
            // 递归使用父加载器加载
            c = parent.loadClass(name, false);
        } else {
            // 启动类加载器加载
            c = findBootstrapClassOrNull(name);
        }
    } catch (ClassNotFoundException e) {
        // 父加载器无法加载
    }
    if(c == null) {
        // 调用自己的findClass方法进行类加载
        c = findClass(name);
    }
}
分享到:
评论

相关推荐

    理解Java ClassLoader机制

    Java ClassLoader机制是Java运行时环境中的核心组件之一,它负责加载类到JVM(Java虚拟机)中,使得程序能够执行。理解ClassLoader的工作原理对于优化应用性能、处理类加载问题以及实现自定义加载器至关重要。 首先...

    java ClassLoader机制及其在OSGi中的应用

    Java ClassLoader机制是Java虚拟机(JVM)中一个至关重要的组成部分,它的主要任务是将类的.class文件加载到JVM中,使得程序能够运行。ClassLoader不仅负责类的加载,还涉及类的验证、初始化等一系列过程。理解...

    ClassLoader机制详解

    Java ClassLoader机制是Java虚拟机(JVM)中至关重要的组成部分,它负责加载类到内存中以便执行。ClassLoader的工作方式和层次结构对于理解和调试Java应用程序尤其是涉及到类动态加载的场景至关重要。 首先,...

    Java Classloader机制用法代码解析

    Java Classloader 机制用法代码解析 Java Classloader 机制用法代码解析是 Java 编程语言中的一种机制,负责加载 Java 类文件到 Java 虚拟机中。本文将对 Java Classloader 机制进行详细的解析,包括 JDK 默认的 ...

    java ClassLoader机制详细讲解

    Java的ClassLoader机制是Java运行时环境的核心组成部分,它负责加载.class文件到JVM(Java Virtual Machine)中,以便程序能够使用这些类。ClassLoader的主要任务是将类的二进制数据转换为可执行的Java对象。它使得...

    ClassLoader运行机制 自己写的

    理解ClassLoader的工作机制对于深入掌握Java应用程序的运行至关重要。这里我们将详细讨论ClassLoader的运行机制,特别是自定义ClassLoader的设计与实现。 ClassLoader的基本职责是根据类名动态加载对应的类文件。在...

    探究java的ClassLoader及类变量初始化顺序

    总之,深入理解Java的ClassLoader机制和类变量初始化顺序是提升Java编程技能的重要步骤。通过学习这些知识点,开发者可以更好地优化代码、设计更健壮的系统,并解决与类加载和初始化相关的复杂问题。

    JAVA工程师实习一周总结.doc

    学习 Java 虚拟机和 ClassLoader 机制可以帮助我们更好地理解 Java 程序的运行机制和类加载机制。同时,学习自定义类加载器也可以扩展我们的知识面和实践能力。 总结 这篇文章介绍了 Java 工程师在实习期间的学习...

    Tomcat 5.0.18 ClassLoader source code insight

    尤其是Tomcat的ClassLoader机制,它是Java类加载的核心部分,对于理解和解决类加载问题至关重要。本文将围绕“Tomcat 5.0.18 ClassLoader源码”进行深入探讨。 ClassLoader在Java中承担着加载类到JVM中的任务,它的...

    ava的ClassLoader介绍.doc

    总的来说,理解并掌握Java的ClassLoader机制对于开发复杂的、动态的Java应用程序至关重要。它不仅可以帮助你更好地控制类的加载过程,还能实现如动态代码更新、模块化系统等高级功能。通过编写自定义ClassLoader,...

    深入理解ClassLoader工作机制.docx

    《深入理解ClassLoader工作机制》 Java虚拟机(JVM)中的ClassLoader是负责加载类到内存中的核心组件。它不仅承担着将字节码转换为可执行对象的重任,还参与了类生命周期的各个阶段,包括加载、验证、准备、解析、...

    Tomcat研究之ClassLoader.pdf

    在深入了解Tomcat的工作原理时,一个重要的组成部分就是其ClassLoader机制。本文旨在深入剖析Tomcat中特有的类加载器(ClassLoader)体系结构,帮助读者理解Tomcat如何管理和加载不同类型的类库。 #### 二、Tomcat...

    2022年JAVA工程师实习一周总结.docx

    本文档总结了作者在2022年的一周JAVA工程师实习经验,涵盖了实习的适应阶段、JAVA虚拟机、ClassLoader机制等知识点。 一、实习的适应阶段 在实习的适应阶段,作者认为最重要的转变就是看法的变换。作为一名新人,...

    深入解析Java中的Classloader的运行机制

    总结起来,Java中的Classloader机制是JVM能够正确运行和管理应用程序的关键部分。它通过双亲委派模型保证了类的唯一性和安全性,同时提供了灵活性,允许用户自定义加载策略以满足特定需求。理解并掌握Classloader的...

    Java SE: ClassLoader in depth

    对于标题“Java SE: ClassLoader in depth”和描述中提到的“源码”、“工具”,实际上在给出的内容部分并没有任何与Java ClassLoader...深入理解ClassLoader机制对于开发大型、复杂或动态可扩展的Java应用非常重要。

    ClassLoader类加载机制和原理详解

    本文将深入探讨ClassLoader的工作原理和类加载机制,帮助开发者理解这个至关重要的概念。 1. 类加载机制概述 Java的类加载机制遵循“双亲委派模型”(Delegation Model)。当一个类被加载时,它首先会尝试由当前...

    金蝶Apusic应用服务器V6参考b手册b.doc

    金蝶Apusic应用服务器V6参考手册中的Classloader机制 Classloader是Java虚拟机(JVM)中的一种机制,用于加载和管理Java类。金蝶Apusic应用服务器V6参考手册中对Classloader机制进行了详细的介绍,包括Classloader...

    JAVA 基础培训,JDK和JVM,核心类的介绍和使用

    #### 一、JDK的classloader机制详解 在JAVA的基础培训中,深入理解JDK(Java Development Kit)和JVM(Java Virtual Machine)是至关重要的,尤其是关于JDK中的classloader机制。这一机制负责将Java类文件加载到JVM...

    JAVA工程师实习一周总结.docx

    总的来说,作为Java工程师,熟悉JVM的工作原理和ClassLoader机制是基础,而能够灵活运用这些知识解决实际问题则是进阶的标志。在实习的过程中,不断学习、实践和反思,将有助于快速成长为一名合格的Java开发人员。

    JAVA工程师实习一周总结【推荐下载】.doc

    ClassLoader机制是Java平台的一大特色,它负责动态加载类到JVM中。Java程序在运行时,不是一次性加载所有类,而是按需加载。ClassLoader分为Bootstrap ClassLoader、Extension ClassLoader和Application ClassLoader...

Global site tag (gtag.js) - Google Analytics