码迷,mamicode.com
首页 > 编程语言 > 详细

ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗

时间:2017-11-10 10:48:33      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:自己   star   是什么   apc   没有   .class   nbsp   情况   顺序   

1.ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗?

:当然是运行期间啊,我自己有个理解误区,改正后如下:编译期间编译器是不去加载类的,只负责编译而已,去rt.jar拿数据干嘛,不依然是class文件,jvm是只要是class文件就能运行。

 

2.类加载ClassLoader,各个类加载器执行顺序是什么?

:永远是自己写的加载器先去加载,记住并不是真正的加载,而是双亲委派机制,每个加载器都不真正去加载,而是去让父加载器去加载,想一下,自然界亦是如此,如果父亲有这个东西了,我还去白白辛苦一趟加载干嘛?

即,xxx.class文件,自己编写的CustomClassLoader不去加载,我先去看看我的父类加载器是否已经加载这个class了->APPClassLoader,我依然不去加载,我再问问我的父类是否已经加载这个class文件了。

就这样,不断向上推,如果最后的BootStrapClassLoader依然没有加载过这个class文件,并且尝试去加载,结果没找到,就会再U型转回来,想拦截器一样又转回来,由底层加载器不断的向下去委派加载。

 

说白了,真正干活最多的是bootStarpClassLoader,其他的类加载器只有在父类绕了一圈都没找到情况下才去加载。即没法依靠老子,只能靠自己了

ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗

标签:自己   star   是什么   apc   没有   .class   nbsp   情况   顺序   

原文地址:http://www.cnblogs.com/panxuejun/p/7813070.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!