JAVA难点笔记

1 篇文章 0 订阅
1 篇文章 0 订阅

枚举

在某些情况下,一个类的实例有限且是固定的,这时我们就可以用到枚举, 本质是继承自Enum的一个类,这个类里面有自己的构造器,构造器里面有两个参数,一个参数是name一个参数是ordinal,name代表这枚举的名字,ordinal代表他的序号。所以说调用枚举,就是调Enum中的方法,每一个枚举都是一个用public static final 修饰的对象,并且在内存中只有一份,也就是说他是单例的

CAS

cas的全称为(Compare and swap/set),是通过Unsafe类提供的,他的逻辑是指在给一个元素的值进行修改的时候,先去看看内存中的值有没有改变,如果没变我就进行修改,如果变了,我就重新进行获取然后修改,是一个无锁的状态,在少量线程进行操作的时候,在保证他线程安全的前提下,还可以提高他的执行效率。并且cas的原子性是基于cpu级别实现的,所以变量在修改的时候能够是一个原子性操作

AQS

AQS全称是([abstract](javascript:😉[queue](javascript:😉[synchronizer](javascript:😉 )一个抽象类,主是是以继承的方式使用,可以用来解决线程同步执行问题, 底层是维护了一个叫CLH的双向队列,每一个节点存储的是一个线程,以及线程的状态,来实现锁的分配,如果当前线程获取对象资源失败的时候,AQS会将该线程以及等待状态等信息构造成一个Node,将其加入同步队列的尾部,同时阻塞当前线程,当同步状态释放时,唤醒队列的头节点。

原子类

原子类是由concurrent.atomic,提供的一个工具包,它可以保证 我们在多线程的情况下对属性做递增递减运算时是线程安全的,原子类的变量利用volatile保证他的可见性以及禁止指令重排,对变量修改的方法都使用了CAS,保证了他的原子性,所以说Atomic是线程安全的类,又由于它使用了cas,所以在保证安全的情况下,执行效率也有一定的提高。常见的原子类如 AtomicBoolean、AtomicInteger、AtomicLong等。

什么是事物

事务包含一个或多个业务操作,每一个操作都是一个最小的操作单元,这些操作要么都执行,要么都不执行。而且当事物在执行时其他事物不可打断,事务常被用来确保数据的一致性。事物具有四大特性,分别是:原子性,一致性,隔离性,持久性

事物的传播机制

事务传播行为就是多个事务方法相互调用时,比如说各个service之间的互相调用时事务如何在这些方法间传播。 在事物传播过程中可能会出现一些问题,spring在TransactionDefinition接口中定义了七个事务传播行为,经常使用的如

propagation_requierd如果当前没有事物那就新建一个事务,如果已经存在一个事务中,就加入到这个事物当中**

propagation_supports:支持当前事务,如果没有当前事务,就以非事物方法执行。

propagation_required_new:新建事物,如果当前存在事物,酒吧当前事务挂起

什么是 Shiro

Shiro是apache旗下一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架。

RBAC 的权限控制

基于角色的权限访问控制(Role-Based Access Control) 在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。

SpringBoot 的自动装配原理

springboot的自动装配就是通过自定义实现ImportSelector接口,从而导致项目启动时会自动将所有项目META-INF/spring.factories路径下的配置类注入到spring容器中,从而实现了自动装配。

Read uncommitted(读未提交) 如果一个事务已经开始写数据,则另外一个事务不允许同时进行写操作,但允许其他事

Read committed(读已提交) 如果是一个读事务(线程)…

Repeatable read(可重复读取) 可重复读取是指在一个事务内…

Serializable(可序化) 提供严格的事务隔离,它要求事务序列化…

谈谈项目

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值