首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ClassLoader 源码详解

API 文档详解 ClassLoader是一个类加载器对象,负责去加载类。ClassLoader是一个抽象对象。...每个Class对象包含了一个定义它的ClassLoader的引用(『Class#getClassLoader()』返回一个指向ClassLoader的引用)。...ClassLoader类使用一个委托模型去查询类和资源。ClassLoader的每一个实例有一个相关的父加载器。...注意,ClassLoader默认被注册为有并行能力的。然而,它们的子类仍然需要去注册它们自己,如果它们(即,ClassLoader的子类)是并行加载的。...而这个类是使用默认的系统类加载器来去加载的,并且必须定义一个public的接收单个类型为ClassLoader参数的构造方法,同时这个传入的ClassLoader会作为委托的双亲。

75220
您找到你想要的搜索结果了吗?
是的
没有找到

Android插件化开发核心类ClassLoader相关详解

最近在研究插件化开发,顺便就了解了 ClassLoader 这个类加载器,顺藤摸瓜,查到了jvm里面的双亲委派模型,这里就简单的讲一下什么是预定义类加载器和双亲委派模型?...由于这个类加载器是 ClassLoader 中的 getSystemClassLoader() 方法的返回值,所以一般也被称为系统类加载器。...为了向前兼容,JDK1.2之后的 java.lang.ClassLoader 添加了一个新的 proceted 方法 findClass() ,在此之前,用户去继承 java.lang.ClassLoader...为了解决这个困境,Java设计团队只好引入了一个不太优雅的设计:线程上下文件类加载器(Thread Context ClassLoader)。...还可以直接调用ClassLoader.loadClass()方法来指定某个类加载器去加载某个类。

55130

ClassLoader工作机制

所以, ClassLoader的作用 1.加载类 2.审查每个类应该由谁加载 3.将Class字节码重新解析成JVM统一要求的对象格式 ClassLoader类结构分析 首先ClassLoader是抽象类...> c) ClassLoader还有很多子类,我们如果要实现自己的ClassLoader,一般都会继承URLClassLoader这个子类,因为这个类已经帮我们实现了大部分工作,我们只需要在适当的地方修改就好了...这个JVM平台提供三层ClassLoader,这三层ClassLoader可以分为两种类型,可以理解为接待室服务的接待室和为会员服务的接待室。...(1)BootStrap ClassLoader 这个ClassLoader就是接待室服务自身的,它主要加载JVM自身工作需要的类。...这个ClassLoader完全是由JVM自己控制的,需要加载哪个类,怎么加载都由JVM自己控制,别人也访问不到这个类,所以这儿ClassLoader是不遵守前面介绍的加载机制的,它仅仅是一个类的加载工具而已

38610

Java ClassLoader 透析

各司其职 JVM 运行实例中会存在多个 ClassLoader,不同的 ClassLoader 会从不同的地方加载字节码文件。...ClassLoader 传递性 程序在运行过程中,遇到了一个未知的类,它会选择哪个 ClassLoader 来加载它呢?...使用 ClassLoader 可以解决钻石依赖问题。不同版本的软件包使用不同的 ClassLoader 来加载,位于不同 ClassLoader 中名称一样的类实际上是不同的类。...位于同一个 ClassLoader 里面的类名是唯一的,不同的 ClassLoader 可以持有同名的类。ClassLoader 是类名称的容器,是类的沙箱。 ?...但当这个 ClassLoader 由外部类创建 ClassLoader 时直接指定一个 ClassLoader 为 parent 的话,那么它的类型由父加载器决定。

48420

浅入Java ClassLoader

ClassLoader是做什么的? ClassLoader是用来加载Class 文件的。它负责将 Class 的字节码形式转换成内存形式的 Class 对象。...程序在运行的时候会遇到一些新的类,在这个时候程序就会调用Classloader来加载这些类。加载完成将Class对象存放在Classloader中,下次再遇到这些类的时候就不需要重新加载进来了。...JVM 运行实例中会存在多个 ClassLoader,不同的 ClassLoader 会从不同的地方加载字节码文件。...ClassLoader.getSystemClassLoader() AppClassLoader 可以由 ClassLoader 类提供的静态方法 getSystemClassLoader() 得到,...因为 ClassLoader 的传递性,所有延迟加载的类都会由初始调用 main 方法的这个 ClassLoader 全全负责,它就是 AppClassLoader。

31820
领券