首页 > 代码库 > 反射(2)—3种类加载方法的区别
反射(2)—3种类加载方法的区别
直接上源码:
1 package reflex; 2 3 public class Dog { 4 static{ 5 System.out.println("加载静态模块"); 6 } 7 public Dog(){ 8 System.out.println("执行构造方法"); 9 }10 }
1 package reflex; 2 3 import org.junit.Test; 4 /** 5 *三种类的加载方法区别 6 *1.Class.forName("类名"):加载类,并静态初始化; 7 *2.通过关键字new :加载类,并静态初始化,执行构造方法 8 *3.类名.class:只加载类,不做静态初始化。 9 */10 public class DogReflex {11 @Test12 /**13 * 打印结果:加载静态模块14 */15 public void test1() throws Exception{16 Class clazz = Class.forName("reflex.Dog");17 }18 @Test19 /**20 * 打印结果:加载静态模块21 * 执行构造方法22 */23 public void test2(){24 Class Clazz = new Dog().getClass();25 }26 @Test27 /**28 *无打印结果 29 */30 public void test3() throws Exception{31 Class clazz = Dog.class;32 }33 }
反射(2)—3种类加载方法的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。