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

关于ClassLoader工作机制小记

阅读更多
类装载器就是寻找类或接口字节文件进行解析并构造JVM内部对象表示的组件.
在java中,类装载器把一个类装入JVM中,要经过如下的步骤:
引用
1、装载:查找和导入CLass文件
2、链接:执行校验(检查载入Class文件数据的正确性),准备(给类的静态变量分配存储空间)和解析(将符号引用转成直接引用)步骤,
  其中解析步骤是可以选择的。
3、初始化:对类的静态变量,静态代码块执行初始化工作。


   类装载工作是由classloader及其子类负责,classLoader是一个重要的java运行时系统组件,它负责在运行时查找和装入Class字节文件。

    JVM在运行的时候会产生三个classLoader:根装载器(不是ClassLoader的子类,由c++编写的,负责装载JRE的核心类库如rt.jar,charsets.jar),ExtClassLoader和AppClassLoader。而ExtClassLoader扩展目标ext中的JAR类包;AppClassLoader负责装载Classpath路径下面的类包。

    三者的关系是:根装载器是ExtClassLoader的父装载器,而ExtClassLoader是AppClassLoader的父装载器

		ClassLoader loader = Thread.currentThread().getContextClassLoader();
		System.out.println("current loader:"+loader);//打印出AppClassLoader
		System.out.println("parent loader:"+loader.getParent());//打印出ExtClassLoader
		System.out.println("grandparent loader:"+loader.getParent().getParent());//打印出null值,因为根装载器是用C++编写的,所以找不到返回null


    JVM装载类时使用"全盘负责委托机制"。"全盘负责"是指当一个ClassLoader装载一个类时,除非显式另一个ClassLoader,该类所依赖入引用的类也由这个ClassLoader载入;"委托机制"是指先托父装载器寻找目标类,只有在找不到的情况下才从自己的类路径中查找并装载目标类。
分享到:
评论
1 楼 djhyoo 2007-11-28  
你的文章都是好东西啊!!  一个一个看

相关推荐

    深入理解ClassLoader工作机制.docx

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

    ClassLoader运行机制 自己写的

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

    理解Java ClassLoader机制

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

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

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

    【图解版】深入分析ClassLoader类加载工作机制

    【图解版】深入分析ClassLoader类加载工作机制,从原理到JVM的装载过程,详情分析了ClassLoader加载类以及自定义类加载器的过程,不可用于商业用途,如有版权问题,请联系删除!

    ClassLoader类加载机制和原理详解

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

    classloader

    ClassLoader就是执行这个动态加载任务的机制。 Java ClassLoader的工作流程大致如下: 1. 当程序需要加载一个类时,它会请求ClassLoader。 2. ClassLoader接收到请求后,首先检查该类是否已经加载过,如果已加载则...

    ClassLoader

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

    Java ClassLoader定制实例

    理解ClassLoader的工作原理以及如何定制它,对于深入学习Java的运行机制和进行高级应用开发具有重要意义。本篇文章将深入探讨Java ClassLoader的内部工作,并通过一个具体的实例来展示如何定制自己的ClassLoader。 ...

    ClassLoader小例子

    - Java的类加载机制遵循“双亲委派模型”,即一个类加载请求会先由顶级的Bootstrap ClassLoader处理,如果没有找到,则交给Extension ClassLoader,再未找到则继续交给App ClassLoader,最后是用户自定义的...

    自定义classloader的使用

    一、Classloader的工作原理 Java的类加载机制遵循双亲委派模型,即当一个类加载器需要加载类时,它首先委托父类加载器尝试加载,只有当父类加载器无法加载时,才会尝试自己加载。这种设计避免了类的重复加载,并...

    JVM ClassLoader简析

    通过分析这些示例,我们可以更好地理解ClassLoader的工作机制。 总的来说,理解和掌握JVM ClassLoader对于优化Java应用性能、实现动态加载和插件系统至关重要。深入学习ClassLoader不仅有助于提升编程技巧,也有助...

    java classloader

    通过这些文档,你可以获得关于Java ClassLoader的全面理解,包括它的作用、工作流程、如何自定义以及它在整个Java生态系统中的位置。学习这些知识对于提升你的Java编程技能,尤其是开发复杂和动态的应用程序时,是...

    ClassLoader 详解.doc

    深入理解ClassLoader的工作原理对于优化应用性能、解决类加载问题以及实现自定义加载策略至关重要。 首先,JVM启动时,会构建一个类加载器的层次结构,主要包括三个基本类加载器: 1. Bootstrap ClassLoader:引导...

    关于Classloader的总结!loadClass的分析和加载细节的分析

    加载是`Classloader`的工作,验证确保类文件的正确性,准备分配静态变量并设置初始值,解析将符号引用转换为直接引用,初始化则执行类的静态初始化代码块。 6. **双亲委托模型的优缺点** 优点包括防止类的重复加载...

    ClassLoader 案例

    首先,了解ClassLoader的工作原理。Java中的类加载过程分为三个阶段:加载、验证、准备、解析和初始化。默认情况下,系统使用Bootstrap ClassLoader、Extension ClassLoader和App ClassLoader来加载不同路径下的类。...

    ClassLoader原理

    这篇博文将带你深入了解ClassLoader的工作机制。 首先,我们来理解ClassLoader的基本概念。ClassLoader是一个抽象的概念,它是Java中的一个接口,位于`java.lang.ClassLoader`包下。它的主要职责是找到类的二进制...

    ClassLoader的 一些测试

    这篇测试主要探讨了ClassLoader的工作原理及其在实际应用中的使用。通过阅读给出的博文链接,我们可以深入理解ClassLoader的功能、分类以及如何进行自定义。 首先,ClassLoader的基本职责是加载.class文件,将字节...

Global site tag (gtag.js) - Google Analytics