| 反射:在运行状态下,通过class文件对象,去使用构造方法,成员变量,成员方法 方法有三种:
 1.类名.class
 2.对象.getclass()
 3.class.forName("包名.类名")
 好处:
 只要有一个类或者一个类的对象,就可以得到这个类或对象的所有属性和方法,包括私有的
 同步方法
 
 反射成员方法:
 1.获取字节码文件
 Class c = Class.forName("包名.类名");
 2.反射方法
 Method m = c.getMethod("反射的方法",方法的参数类型.class);
 3.用方法,m.invoke(对象,参数)   对象,c.newInstance ,在A建立对象。
 m.invoke(c.newInstance(),参数);
 
 类加载器与反射有什么关系
 反射是通过字节码文件对象,将类的字段,方法,构造器等映射成相应的类,并进行各自的操作;
 类加载器是通过某个类的.classLoader()方法,将该类的.class文件从硬盘中加载到java虚拟机中,形成字节码文件;
 
 什么是字节码文件?
 代码完成后,通过javac编译后形成.class文件,然后类加载器将.class文件从硬盘加载到java虚拟机中,形成字节码文件
 
 |