拥有 反射 标签的文章 共 1 条数据

在Java的反射中,Class.forName和ClassLoader的区别
技术杂谈

在Java的反射中,Class.forName和ClassLoader的区别

2440次浏览 0条评论

前言最近在面试过程中有被问到,在Java反射中Class.forName()加载类和使用ClassLoader加载类的区别。当时没有想出来后来自己研究了一下就写下来记录一下。解释在java中Class.forName()和ClassLoader都可以对类进行加载。ClassLoader就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全限定名来获取描述此类的二进制字节流”,获取到二进制流后放到JVM中。Class.forName()方法实际上也是调用的CLassLoader来实现的。Class.forName(String className);这个方法的源码是    @CallerSensitive     public static Class<?> forName(String className) throws ClassNotFoundException {         Class<?> caller = Reflection.getCallerClass();         return forName0(class