ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗
2017-11-10 09:47
176 查看
1.ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗?
:当然是运行期间啊,我自己有个理解误区,改正后如下:编译期间编译器是不去加载类的,只负责编译而已,去rt.jar拿数据干嘛,不依然是class文件,jvm是只要是class文件就能运行。
2.类加载ClassLoader,各个类加载器执行顺序是什么?
:永远是自己写的加载器先去加载,记住并不是真正的加载,而是双亲委派机制,每个加载器都不真正去加载,而是去让父加载器去加载,想一下,自然界亦是如此,如果父亲有这个东西了,我还去白白辛苦一趟加载干嘛?
即,xxx.class文件,自己编写的CustomClassLoader不去加载,我先去看看我的父类加载器是否已经加载这个class了->APPClassLoader,我依然不去加载,我再问问我的父类是否已经加载这个class文件了。
就这样,不断向上推,如果最后的BootStrapClassLoader依然没有加载过这个class文件,并且尝试去加载,结果没找到,就会再U型转回来,想拦截器一样又转回来,由底层加载器不断的向下去委派加载。
说白了,真正干活最多的是bootStarpClassLoader,其他的类加载器只有在父类绕了一圈都没找到情况下才去加载。即没法依靠老子,只能靠自己了
:当然是运行期间啊,我自己有个理解误区,改正后如下:编译期间编译器是不去加载类的,只负责编译而已,去rt.jar拿数据干嘛,不依然是class文件,jvm是只要是class文件就能运行。
2.类加载ClassLoader,各个类加载器执行顺序是什么?
:永远是自己写的加载器先去加载,记住并不是真正的加载,而是双亲委派机制,每个加载器都不真正去加载,而是去让父加载器去加载,想一下,自然界亦是如此,如果父亲有这个东西了,我还去白白辛苦一趟加载干嘛?
即,xxx.class文件,自己编写的CustomClassLoader不去加载,我先去看看我的父类加载器是否已经加载这个class了->APPClassLoader,我依然不去加载,我再问问我的父类是否已经加载这个class文件了。
就这样,不断向上推,如果最后的BootStrapClassLoader依然没有加载过这个class文件,并且尝试去加载,结果没找到,就会再U型转回来,想拦截器一样又转回来,由底层加载器不断的向下去委派加载。
说白了,真正干活最多的是bootStarpClassLoader,其他的类加载器只有在父类绕了一圈都没找到情况下才去加载。即没法依靠老子,只能靠自己了
相关文章推荐
- 静态变量在什么时候加载?编译期还是运行期?静态代码块加载的时机呢?
- 关于加载图片避免出现内存溢出的问题
- 在CMD下用java命令出现“找不到或无法加载主类”问题
- mui开发APP教程之mui.ajax请求后出现“加载中”
- 在windows下安装scala出现错误:找不到或无法加载主类 scala.tools.nsc.MainGenericRunner
- ScrollView加载里面的数据出现下滑(可能是焦点问题)
- 统计字符数判断一个由a~z这26个字符组成的字符串中哪个字符出现的次数最多。
- 调用pdo模式的时候出现"无法加载数据库驱动“
- 关于Web项目出现懒加载异常的解决方案
- 解决Android Webview 加载一些网页出现白板现象
- 运行 Asp.Net 程序 MVC 网站出现 MySql.Web 程序集加载失败之解决
- 打开新装的vs2008,出现“包加载失败”的错误
- [转]DW中出现 "以下翻译器没有被装载,由于错误:xxxx.htm:有不正确的设置信息" 问题的解决方案
- webView--Android中webView加载H5时,H5页面在不同的手机可能出现文字或者图标类似换行的现象
- 多态性之编译期多态和运行期多态(JAVA版)
- 在CMD下用java命令出现“找不到或无法加载主类”问题
- DALFactory出现"未能加载文件或程序集“Flashlm.SQLServerDAL”或它的某一个依赖项。系统找不到指定的文件”的解决方案
- 解决Hibernate延迟加载出现的问题
- Java编译期优化与运行期优化技术浅析
- 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。