读书人

java反射 ClassLoader 跟 Class.forNa

发布时间: 2013-12-22 15:06:55 作者: rapoo

java反射 ClassLoader 和 Class.forName() 的区别

package fanshe;public class Person {private int age;private String name;static {System.out.println("initial static block...");}}package fanshe;import java.lang.reflect.Array;import java.lang.reflect.Field;import java.lang.reflect.Method;public class Mymain {public static void main(String[] args) throws Exception{ClassLoader c1 = ClassLoader.getSystemClassLoader();c1.loadClass("fanshe.Person");System.out.println("系统加载Person类");Class.forName("fanshe.Person");}}


输出结果:
系统加载Person类
initial static block...

原因: ClassLoader 加载类时不会进行类的初始化, Class.forName()会强制初始化该类。

读书人网 >编程

热点推荐