- 定义新的Annotation类型使用@interface关键字
 - 自定义注解自动继承了java.lang.annotation.Annotation接口
 - Annotation的成员变量在Annotation定义中已无参方法的形式来声明 其中方法名和返回值定义了该成员的名字和类型 我们称为配置参数  类型只能是八种基本数据类型、String、Class、enum、Annotation以上的所有类型的数组
- 方法名称 约等于成员变量名称
 - 返回值 约等于成员变量类型
 
 - 可以在定义Annotation的成员变量时为其指定初始值 指定成员变量的初始值使用defalut关键字
 - 如果只有一个参数成员 建议使用value为参数名称
 - 如果定义的注解含有配置参数 那么使用时必须指定参数值 除非它有默认值 格式时 参数名 = 参数值 如果他只有一个参数成员 且名称为value 可以省略 value=
 - 没有成员定义的Annotation称为标记 包含成员变量的Annotation称为元数据Annotation
 
一、Jdk5.0提供的四个元注解以及Jdk8.0中的新特性
- @Retention 修饰当前注解的生命周期
 - @Target 指定当前注解的修饰范围
 - @Documented 被修饰的注解可以被javadoc生成
 - @Inherited 被修饰的注解如果存在子类 那么子类默认继承当前注解
 JDK8新特性
- 自定义注解
 - @author LYY
 - @Retention 指定注解生命周期
 @Target 指定注解作用范围 */ @Inherited @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface MyAnnotation {
/**
- 只有一个成员变量 使用建议名称 value 指定默认值为 哈哈
 - @return */ String value() default “哈哈”;
 
}
```
