1.反射概念
Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法
2.反射实现方式和相关功能
创建一个类,通过编译(javac.exe),生成对应的.class文件,之后使用java.exe(JVM类加载器)加载此.class文件,此.class文件加载到内存以后就是一个运行时类,存在缓存区,这个运行时类本身就是一个Class的实例
1)每一个运行时类只加载一次!
2)有了Class的实例以后才可以进行如下操作:
①创建对应的运行时类的对象;
②可以获取对应的运行好时了的完整结构(属性、方法、构造器、内部类、父类、所在包、异常、注解等);
③调用对应的运行时类的指定结构(属性、方法、构造器);
④反射的应用:动态代理
3.Class类在反射中的实现方式
3.1类实现方式
3.2类的加载过程
4. 反射实例
4.1反射技术对比
package com.test;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
class Person{
public String name;
private int age;
public Person() {
super();
}
public Person(String name) {
super();
this.name = name;
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void show(){
System.out.println("这是一个Show方法");
}
public void disply(String nation){
System.out.println("我是"+nation+"!");
}
@Override
public String toString() {
return "Persion [age=" + age +