面试官,简单讲讲Java的注解

简介: 面试官,简单讲讲Java的注解

一、什么是注解?

注解(Annotation),可声明在class、field、method、parameter等前面,有叫它元数据的,并且它是JDK1.5才引入的特性,目前在SpringBoot等框架中被广泛使用。

二、自定义注解

使用格式:

@注解名(属性名=属性值, ...)

解析注解的步骤(本质获取注解属性值):

  1. 获取注解定义的位置的对象Class、Method、Field
  2. 获取指定的注解
  3. 调用注解中的抽象方法获取配置的属性值

三、元注解

包括@Target、@Retention、@Documented、@Inherited、@Repeatable,下文中挑选比较常见的两个展开讲讲。

@Target作用

指明注解的使用位置,属性值如下,

* TYPE:用在类,接口上
* FIELD:用在成员变量上
* METHOD:用在方法上
* PARAMETER:用在参数上
* CONSTRUCTOR:用在构造方法上
* LOCAL_VARIABLE:用在局部变量上

@Retention作用

指明注解的生命周期,属性值如下,

* SOURCE:注解只存在于Java源代码中,编译生成的字节码文件中就不存在了。
* CLASS:注解存在于Java源代码、编译以后的字节码文件中,运行的时候内存中没有,默认值。
* RUNTIME:注解存在于Java源代码中、编译以后的字节码文件中、运行时内存中,程序可以通过反射获取该注解。

四、注解解析

注解的解析依赖于反射,通过反射读取注解中本身带有的信息。

例如,注解在Method上,

// 得到方法对象
 Method method = clazz.getDeclaredMethod("方法名"); 
 // 根据注解名得到方法上的注解对象
 Book book = method.getAnnotation(Book.class);

其实看看较多的框架注解的使用源码,它们也逃不脱这种方式。

小结

1、注解的出现减少程序配置,替代了早期框架中的配置文件;

2、使Java代码清晰易读,并提供了很多编译期类型检查功能;

相关文章
|
4天前
|
Java 程序员
Java this关键字详解(3种用法),Java程序员面试必备的知识点
Java this关键字详解(3种用法),Java程序员面试必备的知识点
|
4天前
|
缓存 安全 Java
7张图带你轻松理解Java 线程安全,java缓存机制面试
7张图带你轻松理解Java 线程安全,java缓存机制面试
|
6天前
|
Java 编译器 程序员
java注解浅述
java注解浅述
12 1
|
3天前
|
移动开发 前端开发 JavaScript
Java和web前端,IT新人该如何选择?,2024年最新Web前端内存优化面试
Java和web前端,IT新人该如何选择?,2024年最新Web前端内存优化面试
|
4天前
|
安全 Java 数据库
Spring boot 入门教程-Oauth2,java面试基础题核心
Spring boot 入门教程-Oauth2,java面试基础题核心
|
4天前
|
Java
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
|
4天前
|
存储 网络协议 前端开发
es集群安装,邮储银行java面试
es集群安装,邮储银行java面试
|
4天前
|
消息中间件 JSON Java
十五,java高级程序员面试宝典
十五,java高级程序员面试宝典
|
4天前
|
NoSQL 算法 Java
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
|
4天前
|
Java 数据库连接 数据安全/隐私保护
springBoot集成token认证,最全Java面试知识点梳理
springBoot集成token认证,最全Java面试知识点梳理