一天学会Java 语言
· 阅读需 4 分钟
基础语法
- 对象 对象是类的一个实体
- 类 类是一个模板,它描述一类对象的行为和状态
- 方法 方法是行为, 一个类可以有很多方法.逻辑运算,数据修改以及所有动作都在方法内实现
- 实例变量 每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定
@Transactional 注解只有作用到 public 方法上事务才生效,不推荐在接口上使用;@Transactional 注解的方法,这样会导致事务失效;@Transactional 的 rollbackFor 和 propagation 属性,否则事务可能会回滚失败;@Transactional 注解的方法所在的类必须被 Spring 管理,否则不生效;| 类别 | synchronized | ReentrantLock |
|---|---|---|
| 存在层次 | Java的关键字,JVM层面 | 是一个类 |
| 锁的释放 | 1.以获取锁的线程执行同步代码,释放锁 2.线程执行发生一次,JVM会让线程释放锁 | 在finally中必须释放锁,不然容易造成线程死锁 |
| 锁的获取 | 加锁A线程获得锁,B线程等待,如果A阻塞,B线程会一直等待 | 分情况而定,Lock有多种锁的获取方式 condition |
| 锁状态 | 无法判断 | 可以判断 |
| 锁类型 | 可重入,不可判断,非公平 | 可重入,可判断,可公平 |
| 性能 | 少量同步 | 大量同步 |