| TYPE | 用在类、接口(包括注解)、枚举上 | @MyAnnotation public class MyClass {} | 
| FIELD | 用在字段(包括枚举常量)上 | @MyAnnotation private int myField; | 
| METHOD | 用在方法上 | @MyAnnotation public void myMethod() {} | 
| PARAMETER | 用在方法(包括构造函数)上 | public MyClass(@MyAnnotation int param) {} | 
| CONSTRUCTOR | 用在构造函数上 | @MyAnnotation public MyClass() {} | 
| LOCAL_VARIABLE | 用在局部变量上 | @MyAnnotation int localVar; | 
| ANNOTATION_TYPE | 用在注解上 | @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation {} | 
| PACKAGE | 用在包上 | @MyAnnotation package com.example; | 
| TYPE_PARAMETER | 用在泛型类型、泛型方法、泛型构造器的类型参数上(Java 1.8引入) | public <@MyAnnotation T> void myMethod(T param) {} | 
| TYPE_USE | 用泛型类型参数、非泛型类型参数、返回类型、抛出类型以及实现类型等上(Java 1.8引入) | @MyAnnotation List<@MyAnnotation String> list; |