一、ClassLoader类加载机制
在java中类加载是遵循委派双亲加载的:通过调用loadClass方法逐级往上传递委派加载请求,当找不到父ClassLoader时调用其findClass方法尝试进行查找和加载,如果当前ClassLo找不所需的Class,则由其孩子尝试进行查找和加载,如果当前ClassLoader找了所需的Class则将该Class按请求路径逐级返回孩子。其关系图如下所示:

ClassLoader.loadClass(...) 是ClassLoader的入口点。当一个类没有指明用什么加载器加载的时候,JVM默认采用AppClassLoader加载器加载没有加载过的class,调用的方法的入口就是loadClass(...)。如果一个class被自定义的ClassLoader加载,那么JVM也会调用这个自定义的ClassLoader.loadClass(...)方法来加载class内部引用的一些别的class文件。重载这个方法,能实现自定义加载class的方式,抛弃双亲委托机制如果要实现自己的类加载器,只需继承ClassLoader,重写findClass方法。
本文详细介绍了Java中的类加载机制,包括委派双亲加载原理及其流程。解释了如何使用ClassLoader类的loadClass方法来加载类,并介绍了如何通过继承ClassLoader并重写findClass方法来自定义类加载器。
1118

被折叠的 条评论
为什么被折叠?



