一、loadClass
此方法负责加载指定名字的类,ClassLoader的实现方法为先从已经加载的类中寻找,如没有则继续从parentClassLoader中寻找,如仍然没找到,则从System ClassLoader中寻找,最后再调用findClass方法来寻找,如果要改变类的加载顺序,则可覆盖此方法。
二、findLoadedClass
此方法负责从当前ClassLoader实例对象的缓存中寻找已加载的类,调用的为native的方法。
三、findClass
此方法直接抛出ClassNotFoundException,因此需要通过覆盖loadClass或此方法来以自定义的方式加载相应的类。
四、findSystemClass
此方法负责从System ClassLoader中寻找类,如未找到,则继续从Bootstrap ClassLoader中寻找,如仍然未找到,则返回null。
五、defineClass
此方法负责将二进制的字节码转换为Class对象。
六、resolveClass
此方法负责完成Class对象的链接,如已链接过,则会直接返回。
本文深入探讨了Java类加载机制的各个关键步骤,包括loadClass、findLoadedClass、findClass、findSystemClass、defineClass和resolveClass方法的作用及实现原理。详细解释了类加载顺序、缓存管理和类链接过程。
651

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



