Java基础_注解与同步锁

Day_17 注解与同步锁

一.同步锁
1.定义:把有可能出现问题的代码包起来,一次只让一个线程执行。通过sychronized关键字实现同步。当多个对象操作共享数据时,可以使用同步锁解决线程安全问题。

2.特点:
<1>前提1:同步需要两个或两个以上的进程。
<2>前提2:多个线程间必须使用同一个锁。
<3>同步的缺点是会降低程序的执行效率,为了保证线程的安全,必须要牺牲性能。
<4>可以修饰方法则称为同步方法,使用的锁对象是this。
<5>可以修饰代码块称为同步代码块,锁对象可以任意。

二.注解
1.定义:注解可以增强Java代码,同时利用反射技术可以扩充实现很多功能,它们被广泛应用于三大框架底层,传统我们通过xml文本文件声明方式,而现在最主流的开发都是基于注解方式,代码量少,框架可以根据注解去自动生成很多代码,从而减少代码量,使程序更容易读。例如火爆的SpringBoot就完全基于注解技术实现。注解的设计非常精巧,初学时觉得很另类甚至很多余。但熟练之后可以发现,它可以超越Java代码的功能,让Java代码瞬间变得强大,常见的注解:@Target,@Retention,jdk提供将来描述我们自定义的注解的注解。

2.分类
<1>JDK自带注解,共5个。
@Override
@Deprecated,表明这个方法过时,但仍然按要用。
@SuppressWarnings(“deprecation”)忽略警告。
@SafeVarargs jdk1.7出现,堆污染,不常用。
@FunctionallInterface jdk1.8出现,配合函数式编程拉姆达表达式,同样也不是很常用。

<2>元注解,描述注解的注解。
@Target 用在类上,方法上,属性上。
@Retention 注解的生命周期:源文件中,class文件中,运行中。
@Inherited 允许子注解继承。
@Documented 生成javadoc时会包含注解,不常用。
@Repeatable 可重复类型注解,可在同一个地方多次使用,同样不常用。

<3>自定义注解。

猜你喜欢

转载自blog.csdn.net/weixin_41858806/article/details/112306308