反射
反射的概念
通过类的加载,产生一个class类对象,通过字节码文件对象获取类中的所有成员.成员变量field,成员方法Method,构造方法Constructor
获取字节码文件对象的方式
1.Object类中的getClass();
2.任意java类型的class属性.
3.class.forName(类或接口的全限定名称)
注解
也叫元数据.jdk1.5及以后版本的一个新特性
@Override :标记当前该方法是否继承父类或者是实现接口的抽象方法!
@Deprecated :标记某个类的成员方法是否已经过时了
@SuppressWarnings:压制警告(方法上/或类上),解决类中的所有黄色警告线!
@FunctionalInterface:函数式接口,标记当前这个接口只有一个抽象方法!
高级注解
@Target:当前该接口作用位置:标记在类上 TYPE,标记在方法上METHOD,FIELD(成员变量上)
注解的本质就是一个接口:interface
继承了公共接口java.lang.Annotation
接口中的抽象方法----在注解中称为"属性"
属性的返回值类型:基本类型:四类八种.
枚举类型.String类型.注解类型.
单元测试junit
@Before :在执行单元测试方法先执行
-
1)JDBC中测试:加载数据库驱动 或者数据的初始化都可以将代码放在这个
- @Before注解所在方法中
-
@After
-
在执行单元测试方法之后执行该注解所在的方法,
- 它标记的这个方法中:释放相关的系统资源
动态代理
java.lang.reflect.proxy:
通过反射,让程序在运行中产生一个代理角色.
JDK提供的Proxy类:代理类 在程序的执行过程中,产生一个代理类!(JDK提供的)
- 还有其他动态代理
- CGLib动态代理