java反射 ClassLoader 和 Class.forName() 的区别
2017-07-13 11:07
281 查看
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()会强制初始化该类。
相关文章推荐
- Java基础面试题6-Java反射中Class.forName和classloader的区别
- java两种反射的区别 - Class.forName()和ClassLoader.loadClass()
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- java反射(1) 之class.forName(""), 类名.class, 对象.getClass()区别
- java反射中,Class.forName和classloader的区别(代码说话)
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- java反射中,Class.forName和classloader的区别(代码说话)
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- java反射——Class.forName和classloader的区别
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- java反射中,Class.forName和classloader的区别
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- Java中反射机制和Class.forName、实例对象.class(属性)、实例对象getClass()的区别
- Java 反射中,class.forName()和classLoader的区别
- 在Java的反射中,Class.forName和ClassLoader的区别
- java反射中,Class.forName和classloader的区别