三种方式"/>
类加载三种方式
类加载三种方式
- 命令行启动应用时,jvm初始化加载
- Class.forName()
- ClassLoader.loadClass()动态加载
Class.forName()和ClassLoader.loadClass()区别
Class.forName():将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块;
ClassLoader.loadClass():只干一件事情,就是将.class文件加载到jvm
package loader;
/** created by sj 2019年8月23日*/
public class LoaderTest {public static void main(String[] args) throws ClassNotFoundException {ClassLoader loader = Hello.class.getClassLoader();try {Class<?> loadClass = loader.loadClass("loader.Test1");System.out.println(loadClass);Class<?> forNameClass = Class.forName("loader.Test1");System.out.println(forNameClass);} catch (ClassNotFoundException e) {e.printStackTrace();}}
}
package loader;
/** created by sj 2019年8月23日*/
public class Test1 {static {System.out.println("代码块被执行");}
}
更多推荐
类加载三种方式
发布评论