博为峰Java技术题 ——JavaSE 类加载器Ⅰ
2019独角兽企业重金招聘Python工程师标准>>>
[类加载器简介]
博为峰小博老师:
类加载器负责将.class文件加载到内存中,并为之生成相应的java.lang.Class对象。
当JVM启动时,会形成由三个类加载器(BootStrap、ExtClassLoader、AppClassLoader)组成的初始类加载器层次结构,如下图:
其中,BootStrap由JVM加载,ExtClassLoader和AppClassLoader由BootStrap加载。
例子:用程序去证明上图中对应的类加载器的父子关系(非继承中的父子关系)
问题:当程序中用到一个类时,使用哪个类加载器加载该类?
当前线程的类加载器( Thread.getContextClassLoader() )去加载线程中的第一个类。
如果类A中引用了类B,Java虚拟机将使用加载类A的类加载器来加载类B(全盘负责)。
还可以直接调用ClassLoader.loadClass()方法来指定某个类加载器去加载某个类。
注意:每个类加载器加载类时,先委托给其上级类加载器(父类委托)。
当所有祖宗类加载器没有加载到类,回到发起者类加载器,还加载不了,则抛ClassNotFoundException。(不去找发起者的子加载器,因为ClassLoader没有getChild方法)
转载于:https://my.oschina.net/u/2971691/blog/783728
博为峰Java技术题 ——JavaSE 类加载器Ⅰ相关推荐
- 博为峰Java技术题 ——JavaSE Java 方法Ⅰ
2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: 我们经常使用到 System.out.println(),那么它是什么呢? l println() 是一个方 ...
- 博为峰Java技术题 ——JavaSE Java Swing组件类的层次
2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: 下图讲述Swing组件类的层次,如图: 从以上的结构示意图中可以知道,Swing组件可以分成两种类型,一种是 ...
- 博为峰Java技术题 ——JavaSE Java 方法Ⅲ
2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: [void 关键字] 下面的例子声明了一个名为 printGrade 的方法,并且调用它来打印给定的分数. ...
- java se 动态添加视图组件_博为峰Java技术题 ——JavaSE Java Swing在顶层容器中添加菜单栏Ⅰ...
下面将讲述如何在顶层容器中添加菜单栏.下面将通过编写一段Swing程序代码来讲解如何在顶层容器中添加菜单栏.其代码如下: publicclassBWFSwingMenu { staticintwidt ...
- 博为峰Java技术题 ——JavaEE Servlet 国际化Ⅲ
2019独角兽企业重金招聘Python工程师标准>>> [特定于区域设置的日期] 博为峰小博老师: 您可以使用 java.text.DateFormat 类及其静态方法 getDat ...
- 博为峰Java技术文章 ——JavaSE Swing FlowLayout布局管理器I
2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: 这种布局管理器的策略也非常简单,它是按照控件加入的先后顺序从左到右排列,一行排满了,再换下一行,然后在从左到 ...
- 博为峰Java技术文章 ——JavaSE Swing列表框选取事件的处理
2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: 在JList类中有addListSelectionListener()方法,可以检测用户是否对JList的选 ...
- 博为峰Java技术文章 ——JavaSE Swing JPanel III
2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: 上篇文章程序实例中,建立了6个面板容器类,分别是contentPane.p1.p2.p3.p4. p5,其中 ...
- java组合框的事件有哪些_博为峰Java技术文章 ——JavaSE Swing列表框选取事件的处理...
博为峰小博老师: 在JList类中有addListSelectionListener()方法,可以检测用户是否对JList的选取有任何的改变.在ListSelectionListener接口中只定义一 ...
最新文章
- ACMNO.33 C语言-最大值3 分别用函数和带参的宏,从三个数中找出最大的数。
- matlab中阈值计算方法,三种阈值计算方法在MatLab6.5中的实现
- 使用YII2 构建一个定时任务
- 枚举windows进程
- 用逻辑回归对用户分类 (理论+实战)
- 纵向取模需要自己倒叙吗_我能自己完成混音工作吗?需要掌握哪些知识?
- 173.二叉搜索树迭代器
- VS2017安装并配置VTK
- 关于“马太效应”,“蝴蝶效应”、“鲶鱼效应”的解释(转贴)
- C语言指针 五分钟入门!你要是不理解,我就当场把这个编译器.........
- 免费领取百度云盘2048G永久空间,永久离线下载特权
- android访问服务器文件,访问服务器(加载图片)
- Hyperledger Fabric的网络拓扑图与交易流程
- 数字电路基础_门电路
- 在word文档中添加目录(包括项目符号、编号、多级列表使用方法)
- 艾兰岛编辑器-路径点
- 数字化转型思考的延伸问题
- 开发神技能 | Python Mock 的入门
- python多功能文本编辑器_多功能高效 批处理式 Python IDE Python 编辑器 新时代新理念...
- 小白的CFD之旅10 敲门实例-关于网格质量的描述。转自流沙大牛
热门文章
- JavaWeb:过滤器Filter
- Android应用开发-广播和服务
- 扫地机器人湿地_口碑最好,用户认可度最高,浦桑尼克新款扫地机M7 MAX上手体验...
- linux标准分发版的描述信息,如何查看Linux中系统版本信息
- Netty详解(四):Netty 整体架构
- mysql查询cpu使用率100%_数据库CPU使用率100% 排查记
- 微信小程序_(组件)flex布局
- USB协议基础知识笔记
- Swift - 多线程GCD详解
- 2017.5.5-afternoon