趣文网 > 作文大全

Java注解(Annotation)讲解

2020-12-02 04:30:02
相关推荐

注解简介

Java注解是一种特殊的元数据,元数据是关于数据的数据,所以,注解就是代码的元数据。

注解是Java 1.5引入的,目前已被广泛应用于各种框架如:lombok、JDK注解、mybatis、Spring、Hibernate等。注解相当于是一种嵌入在程序中的元数据,可以使用注解解析工具或编译器对,其进行解析,也可以指定注解在编译期或运行期有效。 在注解诞生之前,程序的元数据存在的形式仅限于java注释或javadoc,但注解可以提供更多功能,它不仅包含元数据,还能作用于运行期,注解解析器能够使用注解决定处理流程。 Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和任何元数据(metadata)的途径和方法。Annotation是一个接口,程序可以通过反射来获取指定程序元素的Annotation对象, 然后通过Annotation对象来获取注解里面的元数据。

工作原理

注解工作原理这边以提供者和消费者来解释一下,不管什么注解都是为了描述源代码或者规定源代码在被处理时进一步加工。所以编码时写注解就是提供者角色,代码运行3个阶段就是注解消费者。

1、注解提供者:源代码注解。2、注解消费者:在三个时期都会处理,源代码进行分析处理时、编译源代码进行处理时、运行时进行处理时。注解的生命周期

一个注解可以有三个生命周期,它默认的生命周期是保留在一个CLASS文件,但它也可以由一个@Retetion的元注解指定它的生命周期。

1、java源文件:当在一个注解类前定义了一个@Retetion(RetentionPolicy.SOURCE)的注解,那么说明该注解只保留在一个源文件当中,当编译器将源文件编译成class文件时,它不会将源文件中定义的注解保留在class文件中。2、class文件中:当在一个注解类前定义了一个@Retetion(RetentionPolicy.CLASS)的注解,那么说明该注解只保留在一个class文件当中,当加载class文件到内存时,虚拟机会将注解去掉,从而在程序中不能访问。3、程序运行期间:当在一个注解类前定义了一个@Retetion(RetentionPolicy.RUNTIME)的注解,那么说明该注解在程序运行期间都会存在内存当中。此时,我们可以通过反射来获得定义在某个类上的所有注解。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

一句话的力量作文600字 伴我成长半命题作文600字 我为自己点赞作文600字 除夕作文开头结尾摘抄 微笑面对生活作文600字 坚持就是胜利作文600字 书香伴我成长作文800字 知心的话儿告诉你作文 快乐的春节作文500字 20年后的我作文400字 吃团圆饭作文300字 六年级下册英语第一单元作文 弘扬传统文化作文800字 多彩的活动作文300字 寒假我学会了什么作文 欢欢喜喜过春节作文 走亲访友作文300字 400格作文纸打印 五年级下册语文第二单元作文 人生处处有风景作文 身边的温暖作文600字 六年级下册语文第四单元作文 洗碗作文300字三年级 关于春节的英语小作文 春天的作文500字左右 高考作文出来了吗 走亲戚作文400字 春节的风俗作文600字 关于感恩的作文800字 描写雪景的作文300字