Class.forName和ClassLoader到底有啥区别

简介: Class.forName和ClassLoader到底有啥区别

前言

 

最近在面试过程中有被问到,在加载类和使用ClassLoader加载类的区别。当时没有想出来后来自己研究了一下就写下来记录一下。

 

解释

 

在和ClassLoader都可以对类进行加载。

 

ClassLoader就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全限定名来获取描述此类的二进制字节流”,获取到二进制流后放到JVM中。Class.forName()方法实际上也是调用的ClassLoader来实现的。

 

Class.forName(String className);这个方法的源码是

 

@CallerSensitive

public static Class

相关文章
|
6月前
|
Java 关系型数据库 MySQL
在Java的反射中,Class.forName和ClassLoader的区别
在Java的反射中,Class.forName和ClassLoader的区别
106 3
|
6月前
|
前端开发 Java 程序员
ClassLoader如何加载class
ClassLoader如何加载class
56 0
|
4月前
|
安全 Java 数据库
使用`Class.forName`动态加载类
使用`Class.forName`动态加载类
|
5月前
|
Java
Class.forName()方法总结
Class.forName()方法总结
|
Java 数据库连接
【Java面试】反射中,Class.forName和classloader的区别是什么?
【Java面试】反射中,Class.forName和classloader的区别是什么?
86 0
|
Java 数据库连接 API
Java“ Class.forName()”和“ Class.forName()newInstance()”之间有什么区别?
Java“ Class.forName()”和“ Class.forName()newInstance()”之间有什么区别?
109 0
|
安全 前端开发 Java
浅析java中ClassLoader如何加载Class
浅析java中ClassLoader如何加载Class
137 0
|
前端开发 Java 关系型数据库
Class.forName 和 ClassLoader 到底有啥区别?
Class.forName 和 ClassLoader 到底有啥区别?
137 0