前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >类加载器

类加载器

作者头像
GreizLiao
发布于 2019-09-24 07:45:17
发布于 2019-09-24 07:45:17
6110
举报
文章被收录于专栏:足球是圆的足球是圆的

定义

  实现类加载阶段中的“通过一个类的全限命名来获取描述此类的二进制字节流”这个动作的代码模块称为“类加载器”。

  类加载器虽然只用于实现类的加载动作,但它在Java程序中起到的作用却远远不限于类加载阶段。比如判断两个类是否“相等”,只有两个类是由同一个类加载器加载的前提下才有意义。

类加载器类型

  从Java虚拟机的角度来讲,只存在两种类加载器:   * 启动类加载器(Bootstrap ClassLoader),这个类加载器使用C++语言实现,是虚拟机自身的一部分;   * 另一种就是所有其他的类加载器,这些类加载器都是由Java语言实现,独立于Java虚拟机外部,并且全部继承java.lang.ClassLoader。

  从Java开发人员的角度讲,有以下几种类加载器:   * 启动类加载器(Bootstrap ClassLoader),负责将存放在\lib目录中,或者被-Xbootclasspath参数所指定的路径中的,并且是虚拟机识别的类库加载到虚拟机内存中。唯一一个无法被Java程序直接引用的类加载器。   * 扩展类加载器(Extension ClassLoader),负责加载\lib\ext目录中的,或者被java.ext.dirs系统变量所指定的路径中的所有类库。   * 应用程序类加载器(Application ClassLoader),这个类加载器也称为“系统类加载器”,负责加载用户类路径(ClassPath)上所指定的类库。如果应用程序没有自定义的类加载器,一般默认都是用这个类加载器。   * 自定义类加载器(User ClassLoader),用户自己定义的类加载器。

双亲委派模型

  上图展示的是类加载器之间的层次关系,成为类加载器的双亲委派模型(Parents Delegation Model)。类加载器双亲委派模型要求除了顶层的启动类加载器外,其它的类加载器都应该有自己的父类加载器。这里的类加载器之间的父子关系不是通过继承实现的,都是使用组合关系来复用父加载器的代码。   类加载器双亲委派模型的工作过程:如果一个类加载器收到类加载的请求,它首先把这个请求委派给父类加载器去完成,每一层次的类加载器都是如此,因此所有的类加载请求都应该传到顶层的启动类加载器中,只有当父类加载器反馈自己无法完成这个加载请求时,子加载器才会尝试自己去加载。

双亲委派模型优缺点

  使用双亲委派模型来组织类加载器之间的关系,有个好处是:Java类随着它的类加载器一起具备了一种带有优先级的层次关系。   由于只能向上委派,到了启动类加载器后不能往下询问,即顶层的类加载器,无法访问底层的类加载器所加载的类。那么会出现以下情况:在启动类加载器加载的系统类中有一个接口,接口提供一个工厂方法用于创建该接口的实例,但是该接口的实现类在应用层中,接口和工厂方法在启动类加载器中,就会出现工厂方法无法创建由应用类加载器加载的应用实例问题。   为了解决这个问题,Java设计团队引入了:线程上下文类加载器(Thread Context ClassLoader)。这个类加载器可以通过java.lang.Thread类的setContextClassLoader()方法进行设置。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-01-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
OpenDaylight铍版本初体验——坑还多吗
OpenDaylight项目发布铍版本(ODL Be),这也是其发布的第四个版本,距离上次发布锂版本(SR3)仅仅只相隔了两个半月,相比较以前版本发布,时间较短,但是据官方宣称,这个发布与先前版本有着
SDNLAB
2018/04/02
1.8K0
OpenDaylight铍版本初体验——坑还多吗
OpenDaylight即将迈入“七年之痒”?
前段时间看到一篇文章,叫《OpenStack已死?》,讲述了OpenStack自2010年提出之后的9年间各方利益牵扯导致的一系列问题,尽管最终作者的结论是OpenStack现在只是进入了成熟期,但实际上早在16年就已经有人开始对OpenStack的发展提出质疑。看到这里有人要说了,你要谈OpenDaylight(ODL)扯我们OpenStack干什么,饭圈第一守则不要“踩一捧一”好吗?别着急,下面我们就来说说ODL。
SDNLAB
2019/05/17
1K0
OpenDaylight即将迈入“七年之痒”?
开源MANO软件盘点
本文描述了ETSI NFV MANO的概况,以及在该领域的概况。 MANO致力于“管理和编排”,是ETSI NFV定义的架构框架的功能模块的一部分。OSM即开源MANO。 Fig 1 – ETSI N
SDNLAB
2018/04/02
2.9K0
开源MANO软件盘点
NFV基本概念_nf缩写是什么意思
NFV(网络功能虚拟化) SDN(软件定义网络) NFV即网络功能虚拟化(Network Functions Virtualization),将许多类型的网络设备(如servers,switches和storage等)构建为一个Data Center Network,通过借用IT的虚拟化技术虚拟化形成VM(虚拟机,Virtual Machine),然后将传统的CT业务部署到VM上。 在NFV出现之前设备的专业化很突出,具体设备都有其专门的功能实现,而之后设备的控制平面与具体设备进行分离,不同设备的控制平面基于虚拟机,虚拟机基于云操作系统,这样当企业需要部署新业务时只需要在开放的虚拟机平台上创建相应的虚机,然后在虚拟机上安装相应功能的软件包即可。这种方式我们就叫做网络功能虚拟化。
全栈程序员站长
2022/09/30
1.6K0
NFV基本概念_nf缩写是什么意思
SDN实战团分享(十九):OpenDaylight在电信网络中的应用
大家好!首先自我介绍一下:我来自中国电信广州研究院,我和我的SDN小组是一支来自电信运营商的研发团队,主要从事一些预研性的研究和开发工作。大家可能是从最近的一本关于ODL的新书《OpenDaylight应用指南》中了解到我们在ODL方面做过一些工作,我这里想说的是,我们的工作在整个运营商的SDN/NFV研究拼图中只是很小的一部分,因为这里涉及到宽带IP网、移动网、传输网、接入网、终端、BOSS等各类专业领域的向SDN的演进问题,今天我们没法在这里展开讲,只用一张图来表明一下相关的工作基础和广域网SDN控制器
SDNLAB
2018/04/02
1.3K0
SDN实战团分享(十九):OpenDaylight在电信网络中的应用
OPNFV SFC简介
今天主要让大家了解下下ODL 中SFC的实现,以下如有描述不准确的地方请指正。 1 基本概念 本架构参考ODL SFC项目,其已经合并到OPNFV的Brahmaputra平台 1.1 Service Functions SF提供特定的网络服务,例如Firewall,NAT,QoS,DPI等。在OPNFV中,SF指提供虚拟网络功能的设备。 1.2 Service Function Forwarders SFF是Service Chaining的核心组件,在OPNFV中,他是一个OVS bridge,在每个co
SDNLAB
2018/03/30
2.1K0
OPNFV SFC简介
开源MANO
MANO(管理和网络编排)在ETSI ISG NFV架构中定义为由多个功能实体所组合而成的一个层,这些功能实体负责管理和编排云基础设施、资源以及服务等。 NFVOrchestrator(编排器)负责管
SDNLAB
2018/03/30
2.3K0
开源MANO
SDxCentral 2015年NFV报告
1 报告概述 《2015年网络功能虚拟化(NFV)报告》将为读者提供关于NFV市场的发展趋势,以及目前取得进展等方面的观点。我们已经开始看到,在运营商,甚至在企业网上,越来越多的概念验证(POC)已经进行了尝试。因此目前非常重要的一件事情,就是认识到NFV对于整个网络产业所带来的巨大变化。 NFV以软件的方式实现网络的功能,因此能够部署在虚拟环境,以及通用的标准硬件上。这能够满足运营商及企业中多样化的网络要求,这也是应用、服务器和储存这些基础设施所依赖的。这篇报告主要分析NFV市场中主要的架构/设计、用
SDNLAB
2018/04/04
9240
SDxCentral 2015年NFV报告
OpenDaylight可视化和控制用例
概述 尽管控制平面在SDN领域吸引了大部分关注,但是网络管理平面的转变也同样重要。SDN提供了在广泛的案例中提高敏捷性同时降低成本的可能。然而,虚拟、物理和混合网络,各式各样的应用,和来自多个供应商的硬件全部一起管理起来是非常有挑战的。 通过自动化,前所未有的智能化,和域范围的可视化。SDN有可能为网络管理带来变革,其变革的程度不亚于服务交付。这些特性也强化了网络的安全管理,后者已经受益于SDN架构。与以往不大相同的是,网络和安全管理可以在中立厂商和多厂商环境中有效实现。 挑战 传统FCAPS(故障、配置、
SDNLAB
2018/04/02
8350
未来已来:网络功能虚拟化(NFV)势必引领下一代通信技术革命!
网络功能虚拟化(Network Function Virtualization, NFV)是当前网络领域的一项颠覆性技术,它将传统网络架构推向新的高度。在过去的几十年里,网络一直是固定功能的,运行在专用硬件上,这种架构在灵活性、可扩展性和成本方面存在挑战,随着云计算、物联网和5G等新兴技术的崛起,现有的网络架构不再能够满足快速变化的需求。NFV出现在这一背景下,它革新了网络功能的交付方式,将其虚拟化成软件实体,运行在通用硬件上。这一技术的影响不仅仅局限于电信和网络服务提供商,还延伸到了云计算、企业网络和边缘计算等领域。
网络技术联盟站
2023/11/13
4.2K0
未来已来:网络功能虚拟化(NFV)势必引领下一代通信技术革命!
VPP系列砖题七:SDN 控制器OpenDaylight在电信网络中的应用
OpenDaylight 是一套以社区为主导的开源框架,旨在推动创新实施以及软件定义网络(简称 SDN)透明化。面对 SDN 型网络,大家需要合适的工具帮助自己管理基础设施,这正是 OpenDaylight 的专长。作为项目核心,OpenDaylight 拥有一套模块化、可插拔且极为灵活的控制器,这使其能够被部署在任何支持 Java 的平台之上。这款控制器中还包含一套模块合集,能够执行需要快速完成的网络任务。
通信行业搬砖工
2023/07/09
1.3K1
VPP系列砖题七:SDN 控制器OpenDaylight在电信网络中的应用
OpenDaylight你不得不知道的十大问题——Opendaylight是什么?
一 ODL的诞生背景 随着互联网的普及,用户数量不断攀升,网络不堪重负。移动终端发展势如破竹,智能手机不断更新换代,各种手机软件层出不穷,手机控随时随地上网,导致流量需求与日俱增,负荷过度的网络无法满足用户需求。网络体系庞大,架构臃肿,不够灵活,不能适应不断涌现出的新业务需求,服务质量得不到保证。网络体系复杂,网络操作需要与其他IT操作的集成与协作,导致网络部署困难。网络更新麻烦,动手操作过多,网络管理员分身乏术。改良已经无法解决现有的网络问题,网络改革势在必行,于是SDN应运而生。 SDN是美国斯坦
SDNLAB
2018/04/02
2K0
OpenDaylight你不得不知道的十大问题——Opendaylight是什么?
[新手指南]OPNFV,SDN for OpenStack
读过之前OpenStack基金会的NFV白皮书的粉丝,想必对OPNFV也不会陌生,本篇文章为大家介绍OPNFV的最新版本-Brahmaptura,帮您快速了解这个新版本的新功能及其他重要信息。 Open Platform for Network Function Virtualiziation(OPNFV)是一个历时2年的Linux基金会项目,提供了一个集成、可安装的开源NFV方案。OPNFV包含了OpenStack和超过30个其他可选组件, 并为它们增加了电信级功能。终端用户可以下载自己需要的安装包、操作
SDNLAB
2018/04/02
2.1K0
[新手指南]OPNFV,SDN for OpenStack
NFV帮助电信运营商节省WAN基础设施成本
虚拟化网络功能以及软件定义网络(SDN)是更广泛的电信广域网(WAN)基础设施向虚拟化和商品化过渡趋势的一部分。 网络功能虚拟化(NFV)的重点在于优化由WAN基础设施提供商这里成为(电信运营商,telcos)运营的网络服务,而SDN谋求的是将控制和转发平面分离,以实现网络的集中控制。 电信运营商采用NFV的主要驱动因素是基础设施的成本不断上升,以及云计算的大规模采用推动网络的变化。诸如Google和Skype等互联网内容提供商正在向用户提供新的视频和音频服务及内容,推出服务的速度比传统电
SDNLAB
2018/03/30
1.2K0
NFV帮助电信运营商节省WAN基础设施成本
菜鸟驿站:学习SDN/NFV路上遇到的术语(一)
SDN:软件定义网络(Software Defined Network,SDN),是一种新型的网络创新架构,是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备的控制面和数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。 NFV:网络功能虚拟化(Network Function Virtualization),通过X86等通用硬件以及虚拟化技术,来承载很多功能的软件处理。从而降低网络昂贵的设备成本,可通过软硬件解耦及功能抽象,使网络设备不在依赖于专用硬件,资源可以充分
SDNLAB
2018/04/02
1.3K0
菜鸟驿站:学习SDN/NFV路上遇到的术语(一)
白话网络编排(MANO),给你感兴趣的项目
网络功能虚拟化(NFV)提供了一种设计、部署和管理网络服务的全新方式,NFV将网络功能如网络地址转换(NAT)、防火墙、入侵检测、域名服务和缓存等功能从专有硬件中分离出来,并通过软件加以实现。NFV能够整合和交付完全虚拟化基础设施所需的网络组建,包括虚拟服务器、存储等。 NFV具备以下优势: ☘降低CAPEX:减少企业对专有硬件的需求,并且提供了按需付费的模式 ☘降低OPEX:简化网络服务的推出和管理 ☘加快服务投入市场的时间:减少部署新服务的时间,能够有效应对不断变化的业务需求,抓住市场机遇提高投资回报
SDNLAB
2018/03/29
2K0
白话网络编排(MANO),给你感兴趣的项目
ECOMP——增强型MANO,两大框架、两级编排、八大软件系统
一、AT&T为什么需要ECOMP? 自2006年开始到2013年期间,AT&T业务收入基本上原地踏步。八年业务收入总共增长8%,年均复合增长率接近1%。业务收入算术平均值为1255亿美金,八年最大的上下波动幅度仅仅为-5.7%--+5.5%。尽管这八年之间业务本身经历了宽带高速增长、triple play业务大发展、移动用户爆发式增长、智能手机拉动数据业务等巨大变化,但基本上算是此消彼长,总体业务收入稳如泰山。这才是AT&T在资本市场面临的大挑战。 业务收入持续高增长无望,而持续稳定股利分红的压力就变得山大
SDNLAB
2018/03/29
1.2K0
ECOMP——增强型MANO,两大框架、两级编排、八大软件系统
通过Tacker将NFV引入OpenStack
2014年的这个时候,我们还在OpenStack社区中为NFV是否属于OpenStack而争论不休。如今这一争议已经被解决了。OpenStack已经成为NFV讨论中的重要部分,正如下面的ETSI MA
SDNLAB
2018/04/03
1.3K0
通过Tacker将NFV引入OpenStack
SDN实战团分享(二十):From Lithium to Beryllium,ODL最新动态变化
家好, 感谢宇峰的邀请, 和大家分享OpenDaylight最新发布的一些进展,胶片主要来自Neela Jacques, Phil Robbs和Colin Dixon。 ODL 社区在铍版本的开发的两
SDNLAB
2018/04/02
7870
SDN实战团分享(二十):From Lithium to Beryllium,ODL最新动态变化
ODL应用案例之云和网络功能虚拟化应用案例
概述 近年来,大公司和中小企业已经认识到云计算技术是提高自己的竞争力的核心技术。混合云和公共云虽然具备了提高业务灵活性并降低总成本的潜力,但它们对于传统网络的需求依旧非常显著。云计算需要极其高水平的动态计算和自动化技术来解决快速变化的需求,当云计算在自动化计算和存储方向已经取得了重大进展的同时,网络自动化仍然因为更复杂而难以实现,从而阻碍了大多数云服务的部署。 通信服务提供商(CSP)也正利用云技术来增强其庞大的网络基础设施的可管理性和成本效益,同时提高了服务灵活性。许多世界领先的电信和有线电视运营商在网
SDNLAB
2018/04/02
1.1K0
ODL应用案例之云和网络功能虚拟化应用案例
推荐阅读
相关推荐
OpenDaylight铍版本初体验——坑还多吗
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档