ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗
Posted THISISPAN
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗相关的知识,希望对你有一定的参考价值。
1.ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗?
:当然是运行期间啊,我自己有个理解误区,改正后如下:编译期间编译器是不去加载类的,只负责编译而已,去rt.jar拿数据干嘛,不依然是class文件,jvm是只要是class文件就能运行。
2.类加载ClassLoader,各个类加载器执行顺序是什么?
:永远是自己写的加载器先去加载,记住并不是真正的加载,而是双亲委派机制,每个加载器都不真正去加载,而是去让父加载器去加载,想一下,自然界亦是如此,如果父亲有这个东西了,我还去白白辛苦一趟加载干嘛?
即,xxx.class文件,自己编写的CustomClassLoader不去加载,我先去看看我的父类加载器是否已经加载这个class了->APPClassLoader,我依然不去加载,我再问问我的父类是否已经加载这个class文件了。
就这样,不断向上推,如果最后的BootStrapClassLoader依然没有加载过这个class文件,并且尝试去加载,结果没找到,就会再U型转回来,想拦截器一样又转回来,由底层加载器不断的向下去委派加载。
说白了,真正干活最多的是bootStarpClassLoader,其他的类加载器只有在父类绕了一圈都没找到情况下才去加载。即没法依靠老子,只能靠自己了
以上是关于ClassLoader Java中类加载出现在哪个阶段,编译期和运行期? 类加载和类装载是一样的吗的主要内容,如果未能解决你的问题,请参考以下文章
java中类加载器ClassLoader,双亲加载机制,启动类加载器,应用类加载器,线程上下文类加载器
话编程 | Java 中类加载的双亲委派的“双”怎么理解 ?