`
shangjava
  • 浏览: 1229474 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java classLoader 原则

阅读更多

要理类加载体系结构,就必须清楚如下几点比较基本的原则。(下面类加载器 简写为cl(classLoader))


1. cl是一种父子树形结构(注:这里不是指类继承的父子关系)

2. 父cl无法看到子cl加载的类

3、 虚拟机遵守双亲委托加载原则,即任何子cl必须首先委托父cl先加载需要的类,当父cl加载不到时再由子cl亲自加载(这是一个递归过程,即父cl如果还有父cl2,那么父cl又委托给父cl2,依次类推,直到根为止,如果父cl已经加载过需要的类cl,则子cl直接使用即可)
4、
全盘负责:一个classloader加载一个class后,这个class所引用或者依赖的类也由这个classloader载入,除非显示的用另一个classloader载入
5、类在虚拟机中的标志出来是 : cl实例号+包名+类名,因此不同的cl实例加载相同的类在虚拟机中表现出来是不同的。这就是为什么多个cl加载同一个类有时候会出现转换异常的ClassCastException的原因

分享到:
评论

相关推荐

    java classloader classpath 张孝祥

    Java中的类加载机制遵循“按需加载”原则,即只有当程序真正需要某个类时,类加载器才会去加载该类。 ##### 2.2 类加载器的分类 Java中主要有以下几种类型的类加载器: - **启动类加载器**(Bootstrap ...

    Java classloader和namespace详细介绍

    双亲委派模型(Parent Delegation Model)是Java类装载器工作的一个重要原则。当一个类装载器收到加载类的请求时,它首先会委托其父类装载器尝试加载,只有当父类装载器无法找到对应类时,当前类装载器才会尝试自己...

    深入理解ClassLoader工作机制.docx

    Java虚拟机(JVM)中的ClassLoader是负责加载类到内存中的核心组件。它不仅承担着将字节码转换为可执行对象的重任,还参与了类生命周期的各个阶段,包括加载、验证、准备、解析、初始化、使用和卸载。这些阶段共同...

    探索JVM底层奥秘ClassLoader源码分析与案例讲解

    ClassLoader是Java中的一个核心组件,它遵循"按需加载"的原则,只有当类被引用时才会加载。Java的类加载机制分为加载、验证、准备、解析和初始化五个阶段。 ClassLoader的层次结构包括Bootstrap ClassLoader(启动...

    Tomcat 5.0.18 ClassLoader source code insight

    Tomcat的ClassLoader设计也遵循这一原则,但为了满足Web应用的隔离性和安全性,它在实现上进行了定制。 Tomcat 5.0.18的ClassLoader主要分为以下几类: 1. Bootstrap ClassLoader:这是JVM启动时的第一个...

    Java 连连看(含源码)

    - **源代码.rar**:这个压缩文件包含的是游戏的源代码,通过阅读和分析源代码,学习者可以深入了解Java编程技巧、面向对象设计原则以及游戏逻辑实现。 综上所述,Java 连连看游戏的开发涉及了Java语言的基础知识、...

    xwiki-commons-classloader-protocol-jar-5.4.zip

    LaZyWorker作为一个延迟任务助手,遵循了懒加载(Lazy Loading)原则,这是一种设计模式,旨在推迟对象的初始化或加载,直到它们真正被需要。在实际应用中,这可以显著减少程序启动时间和内存占用,特别是在处理大型...

    Java面试经典题目

    在给出的示例中,`java.lang.Thread`和`java.lang.ClassLoader`是可以被继承的,而`java.lang.Double`, `java.lang.Math`, `java.lang.Void`, `java.lang.Class`是不可被继承的。这是因为`Thread`和`ClassLoader`...

    Java基础知识点 - 内容比较全面

    5. **JVM ClassLoader机制**:ClassLoader负责加载类到JVM中,包括Bootstrap ClassLoader、Extension ClassLoader和App ClassLoader。类加载遵循双亲委派模型,确保类加载的唯一性。 6. **Java中的synchronized使用...

    Java类加载器.pdf

    Java类加载器遵循按需加载原则,即只有当应用程序真正需要使用某个类时,类加载器才会去加载它。这一机制有效地提高了应用的启动速度,并减少了内存占用。例如,在提供的代码示例中,`Main`类通过`new A()`和`new B...

    JAVA的编程经验.pdf

    Java的类加载器分为三个层次:Bootstrap ClassLoader、Extension ClassLoader和Application ClassLoader。Bootstrap ClassLoader负责加载JRE的`jre/classes`路径下的基本类库,Extension ClassLoader处理`jre/lib/...

    浅谈java中的四个核心概念

    1. **引导类装载器(Bootstrap ClassLoader)**:是最顶层的类装载器,用于装载Java核心库(如rt.jar等),这些核心库位于JAVA_HOME/lib目录下。 2. **扩展类装载器(Extension ClassLoader)**:用于装载扩展库,...

    java类加载器-tomcat中的类加载器

    2. Webapp ClassLoader:每个Web应用程序都有自己的Webapp ClassLoader,用于加载WEB-INF/classes和WEB-INF/lib下的类,遵循"父子优先"原则,优先尝试从父类加载器加载,如果找不到再从自身加载。 3. Shared ...

    Java的四大核心技术

    每个Java应用程序都有一个初始类装载器(Bootstrap ClassLoader),它是所有其他类装载器的父装载器。 - **双亲委派模型**:类装载器遵循一种称为“双亲委派模型”的原则,即子类装载器会先委托其父类装载器尝试...

    java面试评价表

    - **ClassLoader**:讲解JVM中的类加载机制,包括自定义类加载器的实现。 - **双亲委派模型**:解释双亲委派机制的运作过程及其好处,以及破坏该模型的场景。 - **JVM调优**:探讨常见的JVM性能调优方法,包括具体的...

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

    ClassLoader遵循以下工作原则: - **全盘负责**:一旦某个类由某个类加载器加载,那么这个类所引用的所有类也必须由同一个类加载器加载,除非明确使用其他类加载器。 - **委托机制**:在加载类时,ClassLoader会先...

Global site tag (gtag.js) - Google Analytics