# 1.注解

【对线面试官】今天来聊聊Java注解 (opens new window)

# 什么是注解

​ 3y:

​ 注解:代码中的特殊标记,可以在编译、类加载、运行时被读取,并执行相对应的处理。

​ 菜鸟教程:

​ Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。

​ Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。

# 开发时使用

​ 3y:

​ Spring相关:@Controller / @Param / @Select

​ lombok:@Slf4j / @Data

​ 原生Java:@Overried / @Deprecated / @FunctionalInterface 多用于标记和检查

​ 原生Java除基本注解外,还有元Annotation(元注解),元注解就是来修饰注解的,常用元注解有@Retention和@Target

​ @Retention注解可以理解为设置注解的生命周期,而@Target表示这个注解可以修饰哪些地方(比如方法、还是成员变量、还是包等)

# 自定义注解

​ 3y: