博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
博为峰Java技术题 ——JavaSE 类加载器Ⅰ
阅读量:5991 次
发布时间:2019-06-20

本文共 565 字,大约阅读时间需要 1 分钟。

hot3.png

[类加载器简介]

博为峰小博老师:

负责将.class文件加载到内存中,并为之生成相应的对象。

当JVM启动时,会形成由三个类加载器(BootStrap、ExtClassLoader、AppClassLoader)组成的初始类加载器层次结构,如下图:

其中,BootStrap由JVM加载,ExtClassLoader和AppClassLoader由BootStrap加载。

例子:用程序去证明上图中对应的类加载器的父子关系(非继承中的父子关系)

问题:当程序中用到一个类时,使用哪个类加载器加载该类?

当前的类加载器( Thread.getContextClassLoader() )去加载线程中的第一个类。

如果类A中引用了类B,将使用加载类A的类加载器来加载类B(全盘负责)。

还可以直接调用ClassLoader.loadClass()方法来指定某个类加载器去加载某个类。

注意:每个类加载器加载类时,先委托给其上级类加载器()。

当所有祖宗类加载器没有加载到类,回到发起者类加载器,还加载不了,则抛ClassNotFoundException。(不去找发起者的子加载器,因为ClassLoader没有getChild方法)

 

转载于:https://my.oschina.net/u/2971691/blog/783728

你可能感兴趣的文章
go 语言基础
查看>>
【原创】基于部署映像服务和管理(DISM)修改映象解决WIN7 USB3.0安装时报错
查看>>
linux杀掉80端口线程命令
查看>>
QT线程初次使用。遇到的问题。
查看>>
烦恼的高考志愿
查看>>
根据矩阵变化实现基于 HTML5 的 WebGL 3D 自动布局
查看>>
查询数据库连接数
查看>>
CROSS APPLY和 OUTER APPLY 区别详解
查看>>
C# 使用Shell32 进行压缩与解压缩的标准且正确做法
查看>>
PHP如何实现页面静态化
查看>>
HDU 4371 Alice and Bob
查看>>
软测第一次lab 实验报告
查看>>
Hadoop分布式文件系统:架构和设计要点 - 转
查看>>
4.EGit基本用法
查看>>
Android FrameWork——Binder机制详解(2)
查看>>
74HC165级联
查看>>
面向对象的Shell脚本
查看>>
那一抹秋色!漂亮的秋天风景壁纸【组图】
查看>>
解密gzip压缩的网页数据流(转)
查看>>
手工建库
查看>>