14.1 基本Annotation
    Annotation是一个接口,可以通过反射来获取指定程序元素的Annotation对象,
    然后通过Annotation对象来取得注释里的元数据,访问和处理Annotation的工具统称APT
    4个基本Annotation:
    @Override指定方法覆载(强制编译器检查子类必须覆盖父类方法,避免参数错误导致编译正确)
    只能修饰方法
    @Deprecated表示某个程序元素(类、方法等)已过时,当其他程序使用已过时的类、方法时,编译器将给出警告
    修饰方法、类、接口
    @SuppressWarnings取消显示指定的编译器警告,并且会一直作用于该元素的子元素
    @SafeVarargs抑制堆污染警告 Java7才出现
    把一个不带泛型的对象赋值给一个带泛型的变量,往往会发生这种堆污染
    Java不支持泛型数组
    14.2 JDK的元Annotation
    元Annotation用于修饰其他的Annotation定义
    _@_Retention
    _@_Target
    _@_Documented
    _@_Inherited
    自定义新的Annotation类型使用@interface关键字 P649
    根据Annotation是否可以包含成员变量,可以把Annotation分为两类:
    1标记Annotation,没有定义成员变量;仅利用自身的存在与否来提供信息
    2元数据Annotation ,定义了成员变量,可以接受更多元数据