Class.forName与classLoader区别
来源:互联网 发布:遗迹软件 编辑:程序博客网 时间:2024/04/29 08:44
Class 用来描述一个类型,当一个类型被装载(虚拟机读取二进制的class文件)的时候,会创建一个与该类型对应的Class对象到内存堆中。(这个时候该类型甚至没有被分配内存,设置默认值,更别说初始化了)。
Class.forName有2个重载的方法:
Java代码
public static Class<?> forName(String name, boolean initialize,
ClassLoader loader)
throws ClassNotFoundException
public static Class<?> forName(String className)
throws ClassNotFoundException
第一个方法:
name:类的全限定名,如:com.aaa.bbb.ccc
initialize:如果为true,则会在返回Class对象之前,对该类型做连接,校验,初始化操作。(如:执行static块中的代码)
loader:用自定义的类加载器来请求这个类型;当然,你也可以传入null,用bootstrap加载器。
第二个方法:
name和上面相同。默认initialize为true,
而loader是这么获取的
Java代码 收藏代码
ClassLoader.getCallerClassLoader()
其实就是获取当前类的classLoader,也就是装载执行forName操作的类的classLoader
Class.forName有2个重载的方法:
Java代码
public static Class<?> forName(String name, boolean initialize,
ClassLoader loader)
throws ClassNotFoundException
public static Class<?> forName(String className)
throws ClassNotFoundException
第一个方法:
name:类的全限定名,如:com.aaa.bbb.ccc
initialize:如果为true,则会在返回Class对象之前,对该类型做连接,校验,初始化操作。(如:执行static块中的代码)
loader:用自定义的类加载器来请求这个类型;当然,你也可以传入null,用bootstrap加载器。
第二个方法:
name和上面相同。默认initialize为true,
而loader是这么获取的
Java代码 收藏代码
ClassLoader.getCallerClassLoader()
其实就是获取当前类的classLoader,也就是装载执行forName操作的类的classLoader
0 0
- Class.forName与classLoader区别
- Class.forName()与ClassLoader.loadClass()的区别
- ClassLoader.loadClass()与Class.forName()的区别
- Class.forName与ClassLoader.loadClass的区别
- Class.forName()与ClassLoader.loadClass()的区别
- Class.forName与ClassLoader.loadClass的区别
- Class.forName()与ClassLoader.loadClass的区别
- Class.forName()与ClassLoader.loadClass()的区别
- Class.forName与ClassLoader
- class.forname与classloader
- Class.forName与ClassLoader
- Class.forName与ClassLoader
- Class.forName()与ClassLoader.loadClass的区别(转)
- Java:Class.forName()与ClassLoader.loadClass()的区别
- Class.forname() 和 ClassLoader.loadClass()的区别
- Class.forName() 和 ClassLoader.loadClass()的区别?
- Class.forName() 和 ClassLoader.loadClass()的区别?
- Class.forName() 和 ClassLoader.loadClass()的区别
- 深入理解java异常处理机制
- MT4/MT5使用dll调用matlab
- Java编程思想-第二章-一切都是对象-2.3-2.5笔记
- mac使用vscode(简单暴力,只说重点)
- 2016.9.2 号从新开始,之前的博客莫名其妙被封,新开一块!
- Class.forName与classLoader区别
- 约瑟夫环出圈问题三种求解方法
- 同一个project创建多个target
- [Android自定义控件]带加载进度条的ImageView
- 设计模式之Builder模式
- ssd安装与训练
- WPF学习之资源-Resources
- 【腾讯Bugly干货分享】WebVR如此近-three.js的WebVR示例解析
- AS新手在使用Android Studio的过程中有必要弄明白的一些问题