外包兼职做图的网站,百度站长平台有哪些功能,大良制作网站,云南建设厅查证网站一、乐观锁和悲观锁定义、场景怎么判断用什么#xff1f;
1.乐观锁#xff1a; 定义#xff1a;乐观锁假设大多数情况下#xff0c;资源不会发生冲突。因此#xff0c;允许多个线程同时访问资源。 场景#xff1a;读操作多#xff0c;写操作少#xff0c;数据冲突概率…一、乐观锁和悲观锁定义、场景怎么判断用什么
1.乐观锁 定义乐观锁假设大多数情况下资源不会发生冲突。因此允许多个线程同时访问资源。 场景读操作多写操作少数据冲突概率低的场景。多用于查询操作。
2.悲观锁 定义悲观锁假设资源会发生冲突在对资源操作时会将资源锁定其他线程无法访问直到当前线程完成操作释放锁。 场景写操作多读操作少数据冲突概率高的场景。
3.采用何种锁机制
****数据访问模式分析应用程序的数据访问模式包括读写操作的频率读写比例读多于写冲突概率低用乐观锁写多于读冲突概率高用悲观锁。
****系统负载
****数据一致性要求对数据一致性要求较高不能容忍数据冲突或者并发更新导致的数据不一致选悲观锁对数据一致性要求低可容忍一定程度的数据冲突或者延迟选乐观锁。
****开发成本和复杂度悲观锁通常会引入锁定机制可能会导致系统复杂度增加同时也会增加开发和维护成本乐观锁通常不需要引入锁定机制因此开发成本和复杂度低。
二、ArrayList和LinkedList的区别
********************************************************ArrayList适合于需要频繁访问元素的场景而LinkedList适合于需要频繁插入和删除元素的场景。
ArrayList的内存空间是连续的支持快速随机访问但插入和删除元素时需要移动后续元素效率较低。
LinkedList的内存空间不是连续的不支持快速随机访问但插入和删除元素时效率较高只需修改相邻节点的引用即可。
三、IOC原理
IOC控制反转以前创建对象的主动权和时机由自己把握而现在这种权力转移到spring容器中并由容器根据配置文件创建和管理实例之间的依赖关系松散耦合也有利于功能的复用。IOC的具体实现方式之一是依赖注入通过依赖注入容器负责在创建对象的同时将对象所需的依赖关系注入到对象中。IOC的注入方式有三种构造器注入setter方法注入根据注解注入。
四、双亲委派模型解决了什么问题
双亲委派的基本原理当一个类加载器收到加载类的请求时它首先将该请求委派给父类加载器来完成加载。如果父类加载器无法完成加载则该类加载器才尝试自己加载。这样一层一层的委派下去直到达到最顶层的启动类加载器。如果所有父类加载器都无法完成加载则抛出类找不到异常。
五、AOP原理
AOP面向切面编程作为面向对象的一种补充用于将那些与业务无关但却对多个对象产生影响的公共行为和逻辑抽取并封装为一个可重用的模块这个模块被称为“切面”。AOP通过代理模式和动态代理技术来实现可以在方法执行前、执行后或者抛出异常时执行相应的切面逻辑。AOP的动态代理有两种方式JDK动态代理和CGLIB动态代理。