看了挺多双亲委派机制的博客,但是看完就容易忘掉,所以自己调试一下类加载的过程,并记录调试过程和结果。
1.定位类加载的方法,并打断点记录观察加载类SampleTomcatApplication.class(自己随意找一个类观察)的加载过程。
当前是AppClassLoader来加载这个SampleTomcatApplication.class。
<1> 查找当前类加载器是否已加载过此SampleTomcatApplication.class。
<2> 如果有父类加载器,调用父类加载器的loadClass方法
当前类加载器是ExtClassLoader。重复上面的<1> 步骤。
ExtClassLoader没有父类加载器,并且也没有加载过这个类,那就去查找BootstrapClassLoader是否加载过此类。