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

CompilingClassLoader fun,你知道在这种情况下子类是如何从不同的类加载器加载的吗?

在这种情况下,子类是通过Java的双亲委派模型从不同的类加载器加载的。

Java的类加载器采用了双亲委派模型,即当一个类加载器收到加载类的请求时,它首先会将这个请求委派给它的父类加载器去尝试加载。只有当父类加载器无法加载时,子类加载器才会尝试自己去加载。

在CompilingClassLoader fun的情况下,如果子类需要加载一个类,它首先会委派给父类加载器。父类加载器会先尝试加载这个类,如果找到了就直接返回。如果父类加载器无法找到这个类,它会将加载请求再次委派给它的父类加载器,直到达到顶层的启动类加载器。

如果所有的父类加载器都无法加载这个类,那么子类加载器会尝试自己去加载。子类加载器会根据自己的加载策略和规则,从指定的路径或者资源中加载类的字节码,并将其转换为可执行的类对象。

需要注意的是,子类加载器可以访问父类加载器加载的类,但父类加载器无法访问子类加载器加载的类。这样可以保证类加载的层次结构和隔离性,避免类的重复加载和冲突。

总结起来,在CompilingClassLoader fun的情况下,子类会通过双亲委派模型从不同的类加载器加载类,首先委派给父类加载器,如果父类加载器无法加载,则子类加载器尝试自己加载。这种机制保证了类的层次结构和隔离性,确保类的加载是有序和可控的。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云原生容器服务(TKE):https://cloud.tencent.com/product/tke
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iot
  • 腾讯云移动开发(移动推送、移动分析、移动测试等):https://cloud.tencent.com/product/mobile
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云游戏多媒体引擎(GME):https://cloud.tencent.com/product/gme
  • 腾讯云音视频处理(VOD):https://cloud.tencent.com/product/vod
  • 腾讯云网络安全(SSL证书、DDoS防护等):https://cloud.tencent.com/product/saf
  • 腾讯云CDN加速(CDN):https://cloud.tencent.com/product/cdn
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

知道 Java 如何加载

向朋友解释时候这么说:双亲委派模型中,ClassLoader 加载时候,会先交由它父 ClassLoader 加载,只有当父 ClassLoader 加载失败情况下,才会尝试自己去加载...这样可以实现部分类复用,又可以实现部分类隔离,因为不同 ClassLoader 加载互相隔离。...不过贸然向别人解释双亲委派模型不妥,如果在不了解 JVM 加载机制情况下,又如何能很好理解“不同 ClassLoader 加载互相隔离”这句话呢?...所以为了理解双亲委派,最好方式,就是先了解下 ClassLoader 加载流程。 Java 如何加载 2.1:何时加载 我们首先要清楚,Java 何时会被加载?...再谈双亲委派 如果耐心看完了上面的源码分析,一定对 “不同ClassLoader加载互相隔离” 这句话理解又上了一个台阶。

1K20

知道 Java 如何加载

向朋友解释时候这么说:双亲委派模型中,ClassLoader 加载时候,会先交由它父 ClassLoader 加载,只有当父 ClassLoader 加载失败情况下,才会尝试自己去加载...这样可以实现部分类复用,又可以实现部分类隔离,因为不同 ClassLoader 加载互相隔离。...不过贸然向别人解释双亲委派模型不妥,如果在不了解 JVM 加载机制情况下,又如何能很好理解“不同 ClassLoader 加载互相隔离”这句话呢?...所以为了理解双亲委派,最好方式,就是先了解下 ClassLoader 加载流程。 Java 如何加载 2.1:何时加载 我们首先要清楚,Java 何时会被加载?...再谈双亲委派 如果耐心看完了上面的源码分析,一定对 “不同ClassLoader加载互相隔离” 这句话理解又上了一个台阶。

77030

猫头鹰深夜翻译:理解javaclassloader

好问题,默认ClassLoader只知道如何本地文件系统中加载文件。一般场景下,当你本地编写代码并且本地编译时,完全足够了。...Sun发布Java语言时候,最令人兴奋事情之一就是观察这项技术如何执行远程Web服务及时加载代码。它们通过来自远程Web服务HTTP连接发送字节码并在本地运行,这一点令人兴奋。...会了解到每个方法用途以及它在加载过程中如何调用还会了解当你自定义ClassLoader时需要完成工作。...但是,有一种情况不会在第一次调用时编译所有。如果通过名Class.forNasme加载一个,Java编译知道该类需要哪些信息。在这种场景下,会看到CCL会再次运行Java编译。...默认实现会先调用父实现,自己加载。但是这种模式可以改变。所有的ClassLoader根节点系统ClassLoader。它默认会文件系统中加载

50540

Android Paging库使用详解(小结)

库架构 分页库核心构件PagedList, 它是一个集合, 用于异步加载应用数据块或者数据页. 该类应用其它架构之间充当中介....支持不同数据架构 分页包支持应用架构, 包括应用拉取数据地方后台服务, 还是本机数据库, 还是两者结合....构建自己数据源 如果使用了自定义数据解决方案, 或者直接网络加载数据, 可以实现一个DataSource子类....子类, 之后能够加载自定义数据到PagedList对象....因为这个工作获取执行中完成, 可以在其中执行花销巨大工作, 比如, 硬盘中读取, 查询数据库等. 备注: JOIN查询总是比作为map()一部分查询要高效.

2K30

Java 一生

不要说 IDE 中写时候就会爆红。细品。还有一个例子,就是定义 final 变量。在编写时候,必须要初始化,而且不允许再被修改,这个值有没有被改过,也是在这个阶段来检查。...这一步比较关键内容就是生成 方法和 方法。构造和实例构造。这个实例构造和我们代码中构造函数不同。 和 作用主要是代码收敛,比如 可以确定父 static 代码块一定先于子类执行。...>()方法与构造函数(即在虚拟机视角中实例构造()方法)不同,它不需要显式地调用父构造,Java虚拟机会保证子类()方法执行前,父()方法已经执行完毕...之间比较,前提条件同一个加载。如果由不同加载加载相同完全限定名,那他们也是完全不同(打标的原因其二)。也不能这样去做比较。...如果应用程序中没有自定义过自己加载,一般情况下这个就是程序中默认加载。 双亲委派模型 ?

33010

跟小伟一起学习加载机制

1、加载过程 其实关于加载过程分为5个阶段加载,验证,准备,解析,初始化 接下来我们看一下这五个阶段: 1.1 加载 JVM 该阶段主要目的将字节码从不同数据源(可能 class...系统运行时,加载将 .class 文件二进制数据外部存储(如光盘,硬盘)调入内存中,CPU再从内存中读取指令和数据进行运算,并将运算结果存入内存中,显然加载很重要第一步。...它负责加载系统路径java -classpath或-D java.class.path 指定路径下库,也就是我们经常用到classpath路径,开发者可以直接使用系统加载,一般情况下该类加载程序中默认加载... Java 日常应用程序开发中,加载几乎由上述3种加载相互配合执行必要时,我们还可以自定义加载,需要注意,Java 虚拟机对 class 文件采用按需加载方式,也就是说当需要使用该类时才会将它...可能会想,如果我们 classpath 路径下自定义一个名为 java.lang.SingleInterge (该类胡编)呢?

30220

看完这篇Java基础,也是天花板

因为被绿了(default不支持不同子类); 可为了大局,还是选择接受这个孩子,悄悄把方法设置成了proteced(保护子类,即使不同包); 后来老了,明白了开源才是共赢,就设置成了public...初次被加载时候,会按照static块顺序来执行每个static块,并且只会执行一次,可以用来优化程序性能 通俗理解: static一个可以让升级关键字,被static修饰,就不再了。...—>父代码块——>父构造——>子类代码块——>子类构造 泛型 泛”就是宽泛,泛指意思,所谓泛型就是不指定具体类型,而是作为参数传递。...只需要知道如何去操作他们,并不需要知道他们里面怎么构造,怎么实现这个功能。 2.如何实现封装 程序设计里,封装往往通过访问控制实现。也就是刚才提到访问修饰符。...好比只要你手机充电接口不变,无论以后手机怎么更新,依然可以用同样数据线充电或者与其他设备连接。 封装设计使使整个软件开发复杂度大大降低。我只需要使用别人,而不必关心其内部逻辑如何实现

41711

JAVA基础知识

如果要实现一个接口,它必须要实现接口声明所有方法。但是,可以不实现抽象声明所有方法,当然,在这种情况下也必须得声明成抽象。 4.    ...初始化  初始化时加载最后一步,前面的加载过程,除了加载阶段用户应用程序可以通过自定义加载参与之外,其余动作完全由虚拟机主导和控制。...虚拟机把描述数据 Class 文件加载到内存,并对数据进行校验,解析和初始化,最终形成可以被虚拟机直接使用 java 类型。 19. 加载双亲委派模型机制?...当一个收到了加载请求时,不会自己先去加载这个,而是将其委派给父,由父加载,如果此时父不能加载,反馈给子类,由子类去完成加载。 20. 什么加载加载有哪些 ?...实现通过权限定名获取该类二进制字节流代码块叫做加载。  主要有一下四种加载 : 1.

91520

Java面向对象特性总结

1.面对对象与面对过程区别 什么封装?我看到过这样一个例子: 我要用洗衣机洗衣服,只需要按一下开关和洗涤模式就可以了。有必要了解洗衣机内 部结构?有必要碰电动机?...有必要了解如何通电? 如果对于面向过程来说,这些都得知道。“吾生也有涯,而知也无涯”,面向对象封装与庄子思想遥相呼应:用有限时间去做更适合事情。...特性: 子类具有父非private属性和方法 子类可以扩展自己属性和方法 构造继承问题 构造不会被子类继承,但子类对象初始化时会默认调用父无参构造。...当父显示写了有参构造,且没有无参构造子类继承父时候必须显示调用父有参构造。调用方式可以使用super(a,b)来调用。...子类对象实例化过程 new出一个子类对象时候,必须先new出一个父对象。子类调用构造方法时,会先调用父构造方法。(默认) 如果不写构造方法,编译默认加上一个无参构造

46310

【译】LiveData三连

社区内有一个激烈讨论,即事件总线是否一个好解决方案,或者说监听回调是否真正解决方案。无论如何这种技术,作为监听接口,也避免了数据丢失,并保持代码中职责分离。...使用事件总线时,应该注意另一件大事这种机制一对多性质有关。相对于监听方法,只有一个事件订阅者,事件总线方法中,可能会发现自己有许多订阅者,但并不是所有的订阅者知道。...基于数据变化而更新UI情况下,比如在我们例子中,我不认为有理由使用事件总线,但在这种方法和之前监听接口方法中,我会选择后者。...Summary 回顾了解决同一任务不同方法后,我们可以把LiveData看作界面监听和基于事件解决方案混合体,每个解决方案中吸取精华。...我希望你能从这篇文章中获得一些关于LiveData知识,了解它在哪些情况下可以提供帮助,如何使用它,以及为什么它可能一个比其他现有方法更好解决方案。有其他想法?有更好解决方案

1.6K20

单例模式-温故而知新

其中涉及到初始化、锁、线程安全、kotlin语法知识? 静态变量实现单例——饿汉 保证一个实例很简单,只要每次返回同一个实例就可以,关键如何保证实例化过程线程安全?...这里先回顾下初始化。 实例化之前,JVM会执行加载。 而加载最后一步就是进行初始化,在这个阶段,会执行构造方法,其主要工作就是初始化中静态变量,代码块。...同一个加载下,一个类型只会被初始化一次,一共有六种能够触发初始化时机: 1、虚拟机启动时,初始化包含 main 方法; 2、new等指令创建对象实例时 3、访问静态方法或者静态字段指令时...(真饿了,先实例化出来放着吧,要吃时候就可以直接吃了) 缺点就是 有可能造成资源浪费(到最后,饭也没吃上,饭就浪费了) 但其实这种模式一般也够用了,因为一般情况下用到这个实例时候才会去用这个,很少存在需要使用这个但是不使用其单例时候...静态内部类延时加载,意思就是说只有明确用到内部类时才加载。只使用外部类时不加载

48640

30道“热乎乎” JVM 典型题目剖析!

问题 为什么必须要一级一级加载往上找,直接顶层加载开始找不就行了吗?...至于为什么不直接顶层加载开始找,那是因为加载本身就是做父子关系模型 你想一下Java代码实现,他最底下子类加载,只能通过自己引用加载去找。...问题 class文件分配内存准备阶段,那class对象是准备阶段创建? 如果实例变量有初始值,那实例变量变量一同在初始化阶段赋值?...问题 双亲委派可以解决重复加载问题。按照文章中介绍每个加载不同加载路径,这些加载路径是否可能重叠? 解答 不同加载路径,一般不会重叠 ? 问题十五 ?...否则如果没有双亲委派机制,那么岂不是两个不同层级加载可以加载同一个,造成重复加载! ? 问题二十三 ? 问题 自定义加载如何实现?

59210

《逆袭进大厂》第三弹之C++提高篇79问79答

printf无缓冲输出。有输出时立即输出 128、知道重载运算符?...因为在编译时模板并不能生成真正二进制代码,而是在编译调用模板或函数CPP文件时才会去找对应模板声明和实现,在这种情况下编译知道实现模板或函数CPP文件存在,所以它只能找到模板或函数声明而找不到实现...y = x^y; x = x^y; x ^= y ^= x; 142、知道strcpy和memcpy区别是什么? 1、复制内容不同。...This指针首先入栈,然后成员函数参数右向左进行入栈,最后函数返回地址入栈。 153、知道静态绑定和动态绑定?讲讲? 1) 对象静态类型:对象声明时采用类型。在编译期确定。...167、知道数组和指针区别

2.2K30

Java 常见面试题及答案

但是,可以不实现抽象声明所有方法,当然,在这种情况下也必须得声明成抽象; 抽象可以不提供接口方法实现情况下实现接口; Java 接口中声明变量默认都是 final 。...简述 Java 加载机制? 虚拟机把描述数据 Class 文件加载到内存,并对数据进行校验,解析和初始化,最终形成可以被虚拟机直接使用 Java 类型。 19. 加载双亲委派模型机制?...当一个收到了加载请求时,不会自己先去加载这个,而是将其委派给父,由父加载,如果此时父不能加载,反馈给子类,由子类去完成加载。 20. 什么加载加载有哪些?...该类加载在此目录里面查找并加载 Java ; 系统加载(System ClassLoader):它根据 Java 应用路径(CLASSPATH)来加载 Java 。...回答这些问题时候,要说明为什么把这些方法放在 Object 有意义,还有不把它放在 Thread 原因。

35910

聊聊加载与双亲委派模型

JVM,它会加载classpath环境变量或 -classpath以及-cp命令行参数中指定文件 当然,上面 Java 默认加载,我们还可以自定义加载,后文会分析如何自定义加载。...「可见性原则」 体现在允许子类加载查看父加载加载所有,但是父加载不能查看子类加载加载。...ClassLoader 如何工作 聊完双亲委派模型,肯定想知道它是如何实现,那么来看一下 ClassLoader 核心方法,其中 loadClass 方法就是实现双亲委派机制关键,为了缩短代码篇幅和方便阅读...而Tomcat 自定义加载 WebAppClassLoader 解决了这个问题,每一个 web 应用都会对应一个 WebAppClassLoader 实例,不同加载实例加载不同,Web...Java 如何加载

77800

JVM学习第二篇思考:一个Java代码怎么运行起来-下篇

我们既然知道了一个Java生命周期。那么一个什么时候被加载呢?加载时机是什么?什么主动引用?什么被动引用呢? Java虚拟机规范中,没有对加载阶段作出明确约束。...扩展: 比较两个是否相等前提条件:两个必须同一个加载加载。如果没有这个前提条件。比较的话,就是耍流氓。 比如:我要给你货币(法币):30000.当听到这个时候是不是会很高兴呢?...我们知道Son这个编译成class文件后,所在目录classpath下。所以,引导启动加载肯定找不到。...具体完整初始化顺序(存在父情况下): 父静态变量 父静态代码块 子类静态变量 子类静态代码块 父非静态变量 父非静态代码块 父构造 子类非静态变量 子类非静态代码块 子类构造...与不同,执行接口()方法不需要先执行父接口()方法。

22420

JVM | 加载怎么工作

扩展加载任务扩展材料库$JAVA_HOME/jre/lib/ext获取扩展材料。应用加载任务建筑工地周围(系统路径CLASSPATH)收集所需特定材料。...为了加深对它们印象,我了一张关于这三个加载树图,可以暂停看一下: 图片 --- 常见面试题 什么加载(ClassLoader),加载有哪些? 能简单描述一下生命周期?...它们JVM中状态有哪些? 什么双亲委派模型?这种模型有什么优点? 请解释一下引导加载、扩展加载和应用加载区别?...并且为解答了一些加载过程中遇到问题,带你重新回顾了一下,本篇文章三位主人公,它们分别是:引导加载,扩展加载,应用加载。最后我留了几道面试题,不知道是否都能答上来呢。...加载可以自己定义如何实现? 什么情况下需要使用自定义加载是否了解ServiceLoader和SPI机制?后面一篇我会回答这些问题,敬请期待。

29460

java前端好学还是后端好学,一篇文章帮你解答

Linux下如何进行进程调度? Linux下常用命令有哪些? 操作系统什么情况下会死锁? 常用hash算法有哪些? 什么一致性哈希? 如何理解分布式锁? 数据库中范式有哪些?...知道开源协议有哪些? 知道开源软件有哪些? 最近在看书有哪些? 有什么问题要问我吗? 了解哪些设计模式?说说都用过哪些设计模式 如何判断一个单链表是否有环? 操作系统如何进行分页调度?...java虚拟机区域如何划分,每一个区动能,这一块自由发挥。 双亲委派模型中,顶层到底层,都是哪些加载,分别加载哪些? 有没有可能父加载子类加载加载同一个?...如果加载同一个,该使用哪一个? HashMap结构,get(),put()如何实现?HashMap有哪些问题? ConcurrentHashMapget(),put(),又是如何实现?...平常用什么排序?快速排序。说说在那些场景下适用,哪些场景下不适用。 项目中做什么?因为我用到Solr,他就问我Solr如何工作

54720
领券