1.通过反射机制创建对象过程
cagegory类:
public class cagegory {
	  private Integer id;
	  private String name;
  //自行脑补set get 方法.
}
cagegory对象的创建:
   //获取当前进程的类加载器
		   ClassLoader loader = Thread.currentThread().getContextClassLoader();
		   Class clazz = loader.loadClass("jzx.bean.cagegory");
		 
		   //获取类的默认构造器对象并调用 构造该对象
		   Constructor cons = clazz.getDeclaredConstructor(null);
		   cagegory cage = (cagegory)cons.newInstance();
		 
		   Method setName = clazz.getMethod("setName", String.class);
		   setName.invoke(cage, "盖伦");
		   Method setId = clazz.getMethod("setId", Integer.class);
		   setId.invoke(cage, 3);
//获取 类的成员变量类
Field id = clazz.getDeclaredField("id");
  //当成员变量是 private时,使用setAccessible方法略过JVM安全检查。
		   id.setAccessible(true);
		   id.set(cage, 7);
		   System.out.println(cage.toString());
额外解读:
每次运行JVM时,都会产生三个加载器:分别是 根加载器(ClassLoader),扩展类加载器(ExtClassLoader) 和 系统类加载器(AppClassLoader)。
默认使用的是 系统类加载器,它是扩展类加载器的子类,扩展类加载器又是 根加载器的子类,但是根加载器是c++编写的,在java中访问不能。
原文:https://www.cnblogs.com/bigAssBoy/p/12707176.html