面试高频问题----4

一、redis和mysql一致性怎么保证?

1.编写删除缓存的接口,在更新数据库的同时,调用删除缓存的接口删除缓存中的数据。

2.消息队列:ActiveMQ、消息通知;将更新操作发送到消息队列中,顺序更新mysql和redis。

二、redis分布式锁有了解过吗?

redis的特性:1.安全特性:互斥访问,即永远只有一个客户能拿到锁;

                       2.避免死锁:最终客户都可能拿到锁,不会出现死锁的情况;

                       3.容错性:只要大部分redis节点存活就可以正常提供服务。

redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对redis的连接并不存在竞争关系redis中可以使用sentnx命令实现分布式锁。当且仅当key不存在,将key值设为value;若给定的key已经存在,则sentnx不做任何操作。

三、ArrayList和Linkedlist的区别?

ArrayList:1.Arraylist使用动态数组实现,底层基于数组,它通过数组的连续内存空间存储元素,支持随机访问;

                2.ArrayList适用于大量随机访问和遍历操作,但插入和删除元素时性能较低;

Linkedlist:1.使用双向链表实现,每个节点包含数据元素和两个指针,分别指向前一个节点和后一个节点;

                 2.Linkedlist适用于大量插入和删除的操作,对随机访问性能要求不高。

四、Mysql隔离级别

1.读未提交:事务中的修改未提交,其他事务可以读取到这些未提交的数据。

可能出现的问题:脏读、不可重复读、幻读;

2.读已提交:事务中的修改提交后,其他事务才能读取到这些已经提交的数据

可能出现的问题:不可重复读、幻读

3.可重复读:事务中查询结果保持一致,即使其他事务修改了数据也不会影响当前事务的查询结果

可能出现的问题:幻读

4.可串行化:最高隔离级别,确保事务之间完全独立,避免了所有并发访问问题,但可能导致性能下降

****补充:脏读、不可重复读、幻读

脏读:事务 A 读取了事务 B 更新但未提交的数据,然后基于这些数据进行了操作,如果事务 B 回滚了,则事务 A 读取到的数据是脏数据。导致读取到的数据不一致,可能会产生错误的计算结果或业务逻辑错误。

不可重复读:事务 A 多次读取同一个数据项,在两次读取之间,事务 B 修改了该数据项,并提交了事务,导致事务 A 读取到的数据不一致。导致同一个事务中多次读取到的数据不一致,可能影响事务的正确执行。

幻读:事务 A 多次查询一个数据范围,两次查询之间,事务 B 插入了新的数据项并提交了事务,导致事务 A 查询到的数据项数量不一致。

五、接口和抽象类的区别

1.接口是行为的抽象;抽象是对类的抽象

2.接口没有构造方法;抽象类有构造方法

3.抽象体现继承关系;接口体现实现关系

六、spring框架中用到了什么设计模式?

1.工厂模式:Beanfactory是简单工厂模式的体现,用来创建对象的实例

2.单例模式:Bean默认为单例模式

3.代理模式:spring的AOP功能用到了JDK代理和CGLIB代理

4.模板方法:用来解决代码重复的问题。

5.观察者模式:定义对象键一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知被制动更新。

七、注解实现的原理

1.编译时:编译器处理源代码时会检查注解,并可能据此生成额外的源代码和资源文件

2.类加载时:某些注解会在类加载到jvm时被处理

3.运行时:在程序运行阶段,可以通过反射机制访问注解信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/22799.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三十七、openlayers官网示例Earthquakes Heatmap解析——在地图上加载热力图

官网demo地址: Earthquakes Heatmap 这篇主要介绍了热力图HeatmapLayer HeatmapLayer 是一个用于在地图上显示热力图的图层类型,通常用于表示地理数据中的密度或强度。例如,它可以用来显示地震、人口密度或其他空间数据的热点区域。在这个示…

Siemens-NXUG二次开发-创建倒斜角特征、边倒圆角特征、设置对象颜色、获取面信息[Python UF][20240605]

Siemens-NXUG二次开发-创建倒斜角特征、边倒圆角特征、设置对象颜色、获取面信息[Python UF][20240605] 1.python uf函数1.1 NXOpen.UF.Modeling.AskFaceData1.2 NXOpen.UF.Modeling.CreateChamfer1.3 NXOpen.UF.ModlFeatures.CreateBlend1.4 NXOpen.UF.Obj.SetColor 2.实体目标…

lib库和dll库的介绍和使用

lib(静态库) 静态库定义:.lib文件是静态库文件,包含了在编译时被链接到目标程序的代码。使用静态库时,库的代码会被复制到最终生成的可执行文件中。优点: 性能:由于库代码在编译时就被集成到可…

分布式架构与分布式理论

文章目录 分布式架构什么是分布式系统分布式系统特性分布式系统面临的问题 分布式理论数据一致性CAP理论BASE理论 分布式架构 什么是分布式系统 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 所谓分…

Vue的APP实现下载文件功能,并将文件保存到手机中

Vue的APP实现下载文件功能,并将文件保存到手机中 文字说明后台核心代码前台核心代码运行截图项目链接 文字说明 本文介绍Vue实现的APP,将文件下载并保存到手机中,为系统提供导出功能;同时支持导入,即选择本地的文件后&…

Ubuntu18.04 文件管理器无法打开的解决方法

问题:打开Ubuntu虚拟机发现文件管理器无法打开,一直在转圈圈 在终端中输入 nautilus 显示如下信息 nautilus: symbol lookup error: /usr/lib/x86_64-linux-gnu/tracker-2.0/libtracker-data.so.0: undefined symbol: sqlite3_bind_pointer 解决措施&#xff1a…

LabVIEW 反向工程的实现与法律地位

什么是LabVIEW反向工程? 反向工程是指从现有的应用程序或软件中推导出其设计、架构、代码等信息的过程。对于LabVIEW而言,反向工程涉及从现有的VI(虚拟仪器)文件、项目或应用程序中提取出设计思路、功能模块、算法实现等。 LabV…

Spring Boot整合Jasypt 库实现配置文件和数据库字段敏感数据的加解密

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

代码随想录第二十九天打卡| 491.递增子序列,46.全排列,47.全排列 II

491.递增子序列 本题和大家刚做过的 90.子集II 非常像,但又很不一样,很容易掉坑里。 代码随想录 视频讲解:回溯算法精讲,树层去重与树枝去重 | LeetCode:491.递增子序列_哔哩哔哩_bilibili class Solution { public:…

好用软件推荐

软件功能相关介绍地址FastStone截图(长截图、定时截图等)CSDNhttps://www.faststone.org/FSCaptureDownload.htmQuicker快捷访问https://getquicker.net/https://getquicker.net/

大数据学习问题记录

问题记录 node1突然无法连接finalshell node1突然无法连接finalshell 今天我打开虚拟机和finalshell的时候,发现我的node1连接不上finalshell,但是node2、node3依旧可以链接,我在网上找了很多方法,但是是关于全部虚拟机连接不上finalshell&a…

统一返回响应

前言 我们为什么要设置统一返回响应 提高代码的可维护性:通过统一返回请求的格式,可以使代码更加清晰和易于维护,减少重复的代码,提高代码质量。 便于调试和测试:统一的返回格式使得在调试和测试时更为简单&#xff…

大模型时代,是 Infra 的春天还是冬天?

Highlights 大模型时代元年感悟 Scaling Laws 是大模型时代的摩尔定律,是最值得研究的方向 LLM 发展的三个阶段: 算法瓶颈 -> 数据瓶颈 -> Infra 瓶颈 为什么 GPT 一枝独秀, BERT、T5 日落西山? 大模型时代,是大部分 Infra 人的冬天,少部分 Infra 人的春天(算法研…

算法金 | 一文读懂K均值(K-Means)聚类算法

​大侠幸会,在下全网同名[算法金] 0 基础转 AI 上岸,多个算法赛 Top [日更万日,让更多人享受智能乐趣] 1. 引言 数据分析中聚类算法的作用 在数据分析中,聚类算法用于发现数据集中的固有分组,通过将相似对象聚集在一…

Qt——前言

一、Qt介绍 ​ **Qt技术特指用来桌面应用开发;**客户端开发的重要任务就是编写和用户交互的界面;而与用户交互的界面有两种典型风格,1.命令行界面/终端界面,TUI;2.图形化界面,GUI; ​ Qt就是用…

统一响应,自定义校验器,自定义异常,统一异常处理器

文章目录 1.基本准备(构建一个SpringBoot模块)1.在A_universal_solution模块下创建新的子模块unified-processing2.pom.xml引入基本依赖3.编写springboot启动类4.启动测试 2.统一响应处理1.首先定义一个响应枚举类 RespBeanEnum.java 每个枚举对象都有co…

信息学奥赛初赛天天练-20-完善程序-vector数组参数引用传递、二分中值与二分边界应用的深度解析

PDF文档公众号回复关键字:20240605 1 2023 CSP-J 完善程序1 完善程序(单选题,每小题 3 分,共计 30 分) 原有长度为 n1,公差为1等升数列,将数列输到程序的数组时移除了一个元素,导致长度为 n 的开序数组…

云原生架构案例分析_5.某体育用品公司云原生架构的业务中台构建

1.背景和挑战 某体育用品公司作为中国领先的体育用品企业之一,在2016年,某体育用品公司启动集团第三次战略升级,打造以消费者体验为核心的“3”(“互联网”、“体育”和“产品”)的战略目标,积极拥抱云计算…

NeuralForecast TokenEmbedding 一维卷积 (Conv1d) 与矩阵乘法

NeuralForecast TokenEmbedding 一维卷积 (Conv1d) 与矩阵乘法 flyfish TokenEmbedding中使用了一维卷积 (Conv1d) TokenEmbedding 源码分析 在源码的基础上增加调用示例 下面会分析这段代码 import torch import torch.nn as nn class TokenEmbedding(nn.Module):def __i…

C++模板类与Java泛型类的实战应用及对比分析

C模板类和Java泛型类都是用于实现代码重用和类型安全性的重要工具,但它们在实现方式和应用上有一些明显的区别。下面,我将先分别介绍它们的实战应用,然后进行对比分析。 C模板类的实战应用 C模板类允许你定义一种通用的类,其中类…