首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2013-12-22 
java反射 ClassLoader 和 Class.forName() 的区别package fanshepublic class Person {private int agep

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()会强制初始化该类。

热点排行