父类委托机制详解(全盘负责委托机制 )
父类委托机制详解(全盘负责委托机制 )
例如:用eclipse的打包工具将TestClassLoader输出成jre/lib/ext目录下的itcast.jar包,再在eclipse中运行这个类,运行结果显示为ExtClassLoadr。此时的环境状态是classpath目录有TestClassLoader.class,ext/itcast.jar包中也有TestClassLoader.class,我们知道,使用一个类,应该只出现一个字节码文件,现在却出现两个了,肿么办?这时候我们就需要了解类加载的具体过程和原理了。如下所示:
-
bootstrap classloader:
引导(也称为原始)类加载器
,它负责加载Java的核心类。这个加载器是非常特殊的,它实际上不是java.lang.ClassLoader的子类,而是由JVM自身实现的(底层是c代码)。因为JVM在启动的时候就自动加载它们,所以不需要在系统属性CLASSPATH中指定这些类库。 -
extension classloader:
扩展类加载器
,它负责加载JRE的扩展目录(JAVA_HOME/jre/lib/ext或者由java.ext.dirs系统属性指定的)中的JAR包。这为引入除Java核心类以外的新功能提供了一个标准机制。因为默认的扩展目录对所有从同一个JRE中启动的JVM都是通用的,所以放入这个目录的JAR类包对所有的JVM和system classloader都是可见的。 -
system classloader:
系统(也称为应用)类加载器
,它负责在JVM被启动时,加载来自在命令java中的-classpath或者java.class.path系统属性或者CLASSPATH操作系统属性所指定的JAR类包和类路径。可以通过静态方法ClassLoader.getSystemClassLoader();
找到该类加载器。如果没有特别指定,则用户自定义的任何类加载器都将该类加载器作为它的父加载器。
-
classloader 加载类用的是
全盘负责委托机制
。 -
全盘负责
:即是当一个classloader加载一个Class的时候,这个Class所依赖的和引用的其它Class通常
也由这个classloader负责载入。 -
委托机制
:先让parent(父)类加载器 寻找,只有在parent找不到的时候才从自己的类路径中去寻找。 -
类加载还采用了
cache机制
:如果cache中保存了这个Class就直接返回它,如果没有才从文件中读取和转换成Class,并存入cache,这就是为什么修改了Class但是必须重新启动JVM才能生效,并且类只加载一次的原因
。
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
7. Python3源码—Dict对象
7.1. 散列表 散列表的基本思想,是通过一定的函数将需搜索的键值映射为一个整数,将这个整数视为索引值去访问某片连续的内存区域。理论上,在最优情况下,散列表能提供O(1)复杂度的搜索效率。 用于映射的函数称为散列函数(hash function),而映射后的值称为元素的散列值(hash value)。在散列表的实现中,所选择的散列函数的优劣将直接决定所实现的散列表的搜索效率的高低。 在使用散列表的过程中,不同的对象经过散列函数的作用,可能被映射为相同的散列值。而且随着需要存储的数据的增多,这样的冲突就会发生得越来越频繁。散列冲突是散列技术与生俱来的问题。 装载率是散列表中已使用空间和总空间的比值。如果散列表一共可以容纳10个元素,而当前已经装入了6个元素,那么装载率就是6/10。研究表明,当散列表的装载率大于2/3时,散列冲突发生的概率就
- 下一篇
C# 绘制Word形状——基本形状、组合形状
一、序言 在Office Word中,支持在Word文档中插入类型非常丰富的形状,包括线条、矩形、基本形状(诸如圆形、多边形、星形、括号、笑脸等等图形)、箭头形状、公式形状、流程图、旗帜图形、标注图形等等,我们在编程过程中,想要在Word中绘制不同类型的图形,可以通过类库来操作。控件Spire.Doc for .NET 6.0及以上版本开始支持Office Word中的所有图形,可以通过代码操作某个单一的形状,也可以通过将单一形状进行组合来获得想要的图形或形状效果,当然,也支持自己自定义图形,通过编程绘制也是可以的。下面将介绍向Word绘制形状和组合形状的方法,方法中的代码供参考。 PS: Spire.Doc for .NET获取地址 安装后,dll文件可在安装路径下的Bin文件夹中获取 Dll引用 二、代码示例 (一)绘制单一形状 步骤1:添加如下using指定 using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; using System.Drawing; 步骤2:创建示例,添加section、pa...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作