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 类加载器Ⅰ相关推荐

  1. 博为峰Java技术题 ——JavaSE Java 方法Ⅰ

    2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: 我们经常使用到 System.out.println(),那么它是什么呢? l println() 是一个方 ...

  2. 博为峰Java技术题 ——JavaSE Java Swing组件类的层次

    2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: 下图讲述Swing组件类的层次,如图: 从以上的结构示意图中可以知道,Swing组件可以分成两种类型,一种是 ...

  3. 博为峰Java技术题 ——JavaSE Java 方法Ⅲ

    2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: [void 关键字] 下面的例子声明了一个名为 printGrade 的方法,并且调用它来打印给定的分数. ...

  4. java se 动态添加视图组件_博为峰Java技术题 ——JavaSE Java Swing在顶层容器中添加菜单栏Ⅰ...

    下面将讲述如何在顶层容器中添加菜单栏.下面将通过编写一段Swing程序代码来讲解如何在顶层容器中添加菜单栏.其代码如下: publicclassBWFSwingMenu { staticintwidt ...

  5. 博为峰Java技术题 ——JavaEE Servlet 国际化Ⅲ

    2019独角兽企业重金招聘Python工程师标准>>> [特定于区域设置的日期] 博为峰小博老师: 您可以使用 java.text.DateFormat 类及其静态方法 getDat ...

  6. 博为峰Java技术文章 ——JavaSE Swing FlowLayout布局管理器I

    2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: 这种布局管理器的策略也非常简单,它是按照控件加入的先后顺序从左到右排列,一行排满了,再换下一行,然后在从左到 ...

  7. 博为峰Java技术文章 ——JavaSE Swing列表框选取事件的处理

    2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: 在JList类中有addListSelectionListener()方法,可以检测用户是否对JList的选 ...

  8. 博为峰Java技术文章 ——JavaSE Swing JPanel III

    2019独角兽企业重金招聘Python工程师标准>>> 博为峰小博老师: 上篇文章程序实例中,建立了6个面板容器类,分别是contentPane.p1.p2.p3.p4. p5,其中 ...

  9. java组合框的事件有哪些_博为峰Java技术文章 ——JavaSE Swing列表框选取事件的处理...

    博为峰小博老师: 在JList类中有addListSelectionListener()方法,可以检测用户是否对JList的选取有任何的改变.在ListSelectionListener接口中只定义一 ...

最新文章

  1. ACMNO.33 C语言-最大值3 分别用函数和带参的宏,从三个数中找出最大的数。
  2. matlab中阈值计算方法,三种阈值计算方法在MatLab6.5中的实现
  3. 使用YII2 构建一个定时任务
  4. 枚举windows进程
  5. 用逻辑回归对用户分类 (理论+实战)
  6. 纵向取模需要自己倒叙吗_我能自己完成混音工作吗?需要掌握哪些知识?
  7. 173.二叉搜索树迭代器
  8. VS2017安装并配置VTK
  9. 关于“马太效应”,“蝴蝶效应”、“鲶鱼效应”的解释(转贴)
  10. C语言指针 五分钟入门!你要是不理解,我就当场把这个编译器.........
  11. 免费领取百度云盘2048G永久空间,永久离线下载特权
  12. android访问服务器文件,访问服务器(加载图片)
  13. Hyperledger Fabric的网络拓扑图与交易流程
  14. 数字电路基础_门电路
  15. 在word文档中添加目录(包括项目符号、编号、多级列表使用方法)
  16. 艾兰岛编辑器-路径点
  17. 数字化转型思考的延伸问题
  18. 开发神技能 | Python Mock 的入门
  19. python多功能文本编辑器_多功能高效 批处理式 Python IDE Python 编辑器 新时代新理念...
  20. 小白的CFD之旅10 敲门实例-关于网格质量的描述。转自流沙大牛

热门文章

  1. JavaWeb:过滤器Filter
  2. Android应用开发-广播和服务
  3. 扫地机器人湿地_口碑最好,用户认可度最高,浦桑尼克新款扫地机M7 MAX上手体验...
  4. linux标准分发版的描述信息,如何查看Linux中系统版本信息
  5. Netty详解(四):Netty 整体架构
  6. mysql查询cpu使用率100%_数据库CPU使用率100% 排查记
  7. 微信小程序_(组件)flex布局
  8. USB协议基础知识笔记
  9. Swift - 多线程GCD详解
  10. 2017.5.5-afternoon