注解与自定义注解

1 注解

注解很厉害,他可以增强我们的Java代码,同事利用反射技术可以扩充实现很多功能。他们被广泛应用于三大框架底层。

传统我们通过xml文本文件声明方式(如下图,但是XML比较繁琐且不易检查),而现在最主流的开发都是基于注解方式,代码量少,框架可以根据注解去自动生成很多代码,从而减少代码量,程序更易读。例如最火爆的SpringBoot就完全基于注解技术实现。

xml示例

注解设计非常精巧,初学时觉得很另类甚至多余,甚至垃圾。有了Java代码干嘛还要有@注解呢?但熟练之后你会赞叹,它竟然可以超越Java代码的功能,让Java代码瞬间变得强大。

2 注解的分类

注解一共分为3大类,我们先来认识一下:

 

2.1 JDK注解

JDK注解的注解,就5个:

@OVerride :用来标识重写方法

@Deprecated标记就表明这个方法已经过时了,但我就要用,别提示我过期

@SuppressWarnings(“deprecation")忽略警告

@safaVarargs jdk1.7出现,堆污染,不常用

@Functionalllnterface jdk1.8 出现,配合函数式变成拉姆表达式,不常用

2.2 元注解

用来描述注解的注释,就5个

@Target 注解用在哪里:类上,方法上,属性上等等

@Retention  注解的生命周期:源文件,字节码文件中,运行中

@Inherited允许子注解继承

@Documented生成javadoc时会包含注解,不常用

@Repeatable注解为可重复类型注解,可以在同一个地方多次使用,不常用

2.2.1 @Target ElementType.....

描述注解存放的位置:

 

2.2.2 @Retention RetentionPolicy...

该注解定义了自定义注解被保留的时间长短,比如某些注解仅出现在源码中,而被编译器丢弃;而另一些却被编译在class文件中;编译在class文件中的注解可能会被虚拟机忽略,而另一些在class呗装载时呗读取。

编译运行顺序 

为何要分字节码文件中还还是没有呢?如果没有时,反射技术就拿不到,从而就无法去识别处理。它的值一个3种:

 

3 自定义注解

注意:注解的语法写法和常规JAVA的语法写法不同

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员黑马二代

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值