1.反射是一种机制,利用该机制可以在程序运行过程中对类进行解剖并操作类的所有成员(成员变量,成员方法,构造方法
* 使用反射机制需要知道的概念
* Class 字节码对象
* Constructor 构造方法类
* Method 成员方法类
* Field 字段(成员变量)
* instance 实例、对象
* invoke 执行,调用
反射之Class对象的三种获取方式
// 第一种方式:通过类名.class
Class c1 = String.class;
// 第二种方法:通过Object类的getClass()方法
String str = "你好";
Class c2 = str.getClass();
// 第三种方式:通过Class类的静态方法forName("类全名")
Class c3 = Class.forName("java.lang.String");
2.代理模式:为真实对象提供一个代理来控制对真实对象的直接访问。
代理分类: 静态代理,动态代理
代理涉及的对象:真实对象,代理对象,接口或抽象类,调用者
代理对象的要求:代理对象必须具备和真实对象一样的能力(实现和真实对象实现的接口),拥有被代理对象(明星)的引用
2.1 静态代理:在程序运行前就已经存在代理类的字节码文件,代理类和被代理类的关系在运行前就确定了
2.2 动态代理