依照运行机制分类:1、源码注解: 只在源码阶段保留,编译阶段就被摈弃 ex:@Override 办法重写2、编译时注解:注解会在编译期间保留,在加载 class 文件时会被抛弃ex:@NotNull 指明该字段为空3、运行时注解:保留至运行,甚至会影响运行逻辑的注解ex:Spring 注解:@Autowired 办法注解必须写在办法的正上方一行元注解:注解注解的注解