反射 动态代理 线程池
反射 动态获取类的字节码文件,并对其进行抽象
通过反射可以获取一个类的全部方法和属性,然后进行调用。
反射与类之间抽象的理解:Class 将字节码对象进行抽象 出现了:
1.属性:表示字节码文件的属性的属性:private Field field;
2.属性:表示字节码文件的普通方法的属性:private Mathod method;
3.属性:表示字节码文件的构造方法:private Constructor con;
[外链图片转存失败(img-NYdDgqXU-1568049804584)(imgss\cc.png)]
字节码文件之间可以越过new 创建对象
注意:Class的父类是Object
- 通过反射创建对象?
1.获取字节码文件对象
2.通过字节码文件对象获取对应的实例对象
3.给属性赋值
4.调用方法
步骤:
1.获取字节码文件对象
1.类对象:getClass();//这里的对象也是new出来的,不适合
2.Person.class;?
3.Class.forName("包名加类名");//先比2更灵活不需要知道类名
2.通过字节码文件对象获取对应的实例对象
1.普通的方式:Person person = new Person()
2.通过反射创建