forName()和loadClass()的区别
类加载过程:
1.加载:通过ClassLoader加载class文件字节码,生成Class对象。
2.链接:校验:检查加载的class的正确性和安全性。
准备:为类变量分配存储空间并设置类变量初始值。
解析:jvm将常量池内的符号引用转换为直接引用。
3.初始化:执行类变量赋值和静态代码块。
区别:loadClass只执行到“加载”,forName会执行“加载”,“链接”,“初始化”。
类加载过程:
1.加载:通过ClassLoader加载class文件字节码,生成Class对象。
2.链接:校验:检查加载的class的正确性和安全性。
准备:为类变量分配存储空间并设置类变量初始值。
解析:jvm将常量池内的符号引用转换为直接引用。
3.初始化:执行类变量赋值和静态代码块。
区别:loadClass只执行到“加载”,forName会执行“加载”,“链接”,“初始化”。