Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day04】——Java高级篇

简介: Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day04】——Java高级篇

7.SpringCloudAlibaba常用组件以及作用


Gateway网关:路由 用户鉴权

Nacos注册中心:服务注册与发现 配置中心

Sentinel熔断:服务流量控制和服务降级

Feign:远程调用

Dubbo:远程调用 高并发情况下  比Feign好用

Setea:分布式事务解决方案

Ribbon:负载均衡


8.事务的四大特性


简称ACID


A 原子性 事务是一个完整的操作 事务各步骤是不可分的 要么都执行 要么都不执行


C 一致性 事务完成的时候 数据必须处于统一状态


I 隔离性 对数据修改所有并发事务是隔离的 事务是独立的 它不应该以任何方式依赖于或影响其他


事务


D 永久性 事务完成后 它对数据库的修改永久保持  


9.Spring五个隔离级别


首先说一下事务并发会引起的三种情况


脏读


       A事务对一条记录进行修改 尚无提交 B事务已经看到了A的修改结果 若A发生回滚 B读到的数


据就是错误的


不可重复读


       A事务对一条记录进行修改 尚无提交 B事务第一次查询该记录 看到的是修改之后的结果 此时


A发生回滚 B事务又一次查询该记录 看到的是回滚的结果 同一个事务内 B两次查询结果不一致 这


就是不可重复读


幻读


       A事务对所有记录进行修改 尚未提交 此时B事务创建了一条新记录 A B都提交 A查看所有数


据 发现有一条数据没有被修改 因为这是B事务新增的 就像看到幻象一样 这就是幻读


非重复度和幻像读的区别:

       非重复读是指同一查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发生非重复读。


       幻像读是指同一查询在同一事务中多次进行,由于其他提交事务所做的插入操作,每次返回不同的结果集,此时发生幻像读。


       表面上看,区别就在于非重复读能看见其他事务提交的修改和删除,而幻像能看见其他事务提交的插入。


默认


       使用数据库默认隔离级别


读未提交


       事务尚无提交 其他事务可以看到该事务的修改结果 隔离级别最差,脏读、不可重复读、幻读


都不能避免。


读已提交


       事务只能看到其他事务提交之后的数据。可避免脏读,不可重复读、幻读无法避免。


不可重复读原因:A事务修改,B事务查询,A提交前和提交后,B事务看到的数据是不一致的。


幻读原因:A事务修改,B事务新增,B事务提交前,A事务已经提交。B事务提交后,A发现仍有


数据未修改。


可重复读


       一个事务多次查询,无论其他事务对数据如何修改,看到的数据都是一致的。因为A事务查询


数据时,若B同时在修改数据,A事务看到的永远是B事务执行前的数据。只有当A提交或者回滚之


后,看到的才是最新的被B修改知乎的数据。可避免脏读、不可重复读,幻读无法避免。


序列化        


       事务顺序执行,可避免脏读、不可重复读、幻读,但效率最差。因为A事务执行时,其他事务


必须等待。

20fe6a20247d408b90a89bae33856e66.png



相关文章
|
2月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
94 2
|
2月前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
88 14
|
2月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
|
2月前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
2月前
|
Java 编译器 程序员
Java面试高频题:用最优解法算出2乘以8!
本文探讨了面试中一个看似简单的数学问题——如何高效计算2×8。从直接使用乘法、位运算优化、编译器优化、加法实现到大整数场景下的处理,全面解析了不同方法的原理和适用场景,帮助读者深入理解计算效率优化的重要性。
41 6
|
2月前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
80 4
|
2月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
142 4
|
5月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
3月前
|
算法 Java 数据中心
探讨面试常见问题雪花算法、时钟回拨问题,java中优雅的实现方式
【10月更文挑战第2天】在大数据量系统中,分布式ID生成是一个关键问题。为了保证在分布式环境下生成的ID唯一、有序且高效,业界提出了多种解决方案,其中雪花算法(Snowflake Algorithm)是一种广泛应用的分布式ID生成算法。本文将详细介绍雪花算法的原理、实现及其处理时钟回拨问题的方法,并提供Java代码示例。
105 2
|
3月前
|
JSON 安全 前端开发
第二次面试总结 - 宏汉科技 - Java后端开发
本文是作者对宏汉科技Java后端开发岗位的第二次面试总结,面试结果不理想,主要原因是Java基础知识掌握不牢固,文章详细列出了面试中被问到的技术问题及答案,包括字符串相关函数、抽象类与接口的区别、Java创建线程池的方式、回调函数、函数式接口、反射以及Java中的集合等。
43 0

热门文章

最新文章

下一篇
开通oss服务