面试题汇总(一)
熙牛医疗面经
1.平衡二叉树的概念
平衡二叉树是一种二叉搜索树,他的左右两个字数的高度差绝对值不超过1,并且左右两个子树都是一颗平衡二叉树,通过左旋,右旋,左右双旋,右左双旋,来保持平衡,目的就是为了提高二叉排序树的查找效率,避免出现退化为链表的情况(也就是偏树),使其平均查找时间复查度O(logn)
2.B+树结构与平衡二叉树区别
B+树是一种多路平衡查找树,所有数据都放在了叶子节点,非叶子节点就只存储了键值,且叶子夜店通过指针链接成有序链表,便于范围查找
与平衡二叉树的区别:平衡二叉树最多有两个子树,而B+树可以有多个子树,平衡二叉树数据和键值可以存放到任何节点,B+树的数据节点只存储在叶子节点,B+树更适合磁盘存储和范围查询,而平衡二叉树在插入删除频繁时旋转操作比较多
3.广度优先搜索和深度搜索区别
1)搜索顺序:广度优先搜索是从起点开始一层一层向外扩展,深度优先搜索是从起点节点开始,沿着一条路径尽可能的去搜索,知道无法继续或者到达目标节点
2)数据结构:bfs经常使用队列来存储访问的节点,dfs使用栈和递归实现
3)应用场景:bfs常用来求最短路径问题,dfs常用遍历图,求解迷宫问题
4.数据链路层的作用
数据链路层的主要功能就是给网络层传来的ip数据报组装成帧,确保两个相邻节点间的数据传输不出差错
5.TCP三次握手,四次挥手
三次握手:客户端发送syn请求连接,服务器收到后返回ack+syn,客户端接收到后返回ack建立连接
四次挥手:客户端发送fin请求关闭连接(fin_wait_1),服务器收到后发送ack确认(close_wait),客户端状态变为(fin_wait_2),然后等待服务器处理完业务后,返回fin(last_ack),然后客户端返回ack(time_wait)

6.前端发起请求到后端发生的过程
前端通过浏览器或者其他客户端发起http请求,包括请求方法,url,请求头,请求体,
浏览器根据域名进行dns解析获取服务器ip地址,通过tcp协议进行三次握手建立连接,将请求数据发送到服务器,服务器接受请求后,根据路由映射到对应方法,调用相应处理程序处理业务逻辑,可能涉及数据库操作等
服务器处理结果构建成相应响应保温返回给客户,客户端接收响应
7.策略模式和模版模式
策略模式:定义了多种方法,将他们封装起来,不同情况下可以选择不同的方法
模版模式:在一个抽象类中定义一个算法模板,然后在子类中进行实现,不同子类可以实现不同的具体细节
两者区别就是:策略模式是本身定义了多种方法的,而模板模式则是只有一个抽象方法,剩下的我们要自己实现他的细节
8.聚簇索引和非聚簇索引的区别
1)数据存储方式:聚簇索引的叶子节点存储的是数据本身,数据按照聚簇索引的顺序存储的,非聚簇索引的叶子节点存储的是索引键和指向聚簇索引的指针
2)查找效率:局促索引对于范围查找的查找效率高对于基于聚簇索引的查询效率高,非聚簇索引对于基于非聚簇索引的查询效率高,但需要回表查询到完整数据
注:一个表只可以有一个聚簇索引,但是可以有多个非聚簇索引
9.如何避免非聚簇索引的回表操作
我们可以通过覆盖索引来避免回表操作,即查询所需要的所有列都包含在非聚簇索引中,这样查询时就无需再非聚簇索引的叶子节点中获取数据,不用回表查询
10.Mysql事务特性
1)原子性:事务中的操作要么全部执行,要么全部不执行
2)一致性:事务执行前后,数据都要保证正确
3)隔离性:多个事务并发执行,相互之间不干扰,如同各自独立执行一样,隔离级别有,读未提交,读已提交,可重复读,串行化
4)持久化:事务一旦提交,那么对数据库的修改就是永久的
11.InnoDB如何保证一致性
InnoDB是通过事务的特性,锁机制,mvcc,undolog,redolog等保证一致性
12.Undolog,redolog,binlog作用
Undolog:主要用于事务的回滚和mvcc,记录了数据修改前的版本和操作的反方向操作,以便我们在事务回滚时回复数据,也用于提供旧版本数据的读取
Redolog:用于记录数据的修改操作,数据库崩溃恢复时,我们就可以使用redolog中的数据恢复到最新状态(记录的是数据页的物理修改,比如就是把xx改成了xx等我们恢复时只需要更改这个值,不需要使用sql语句)
Binlog:是二进制日志记录了数据库所有更改操作,用于主从复制和数据恢复(存储的是sql语句,跟我之前所学的aof有点类似,都是存sql语句,但是aof是文本文件,而且主从复制其实主要使用rdb快照)
13.解决MQ幂等性
通过引入一个唯一id每次我们进行校验,或者通过一些业务逻辑上的判断,比如数据库中是否有当前数据
14.悲观锁是行级锁还是表级锁
悲观锁既可以是行级锁也可以是表级锁,具体取决于我们的应用场景,就比如mysql中innodb存储引擎中使用select 。。。for update语句且条件能够精准匹配索引时就位行级锁(也可以是间隙锁),无法精准记录时就是用表级锁
15.Spring AOP
SpringAOP是面向切面编程思想的一种实现,底层通过动态代理jdk动态代理和cglib动态代理实现,jdk动态代理只能代理接口,而cglib则都可以代理,但是我们spring底层中的proxytargetclass这个参数设置默认为fasle,默认是使用jdk动态代理,我们自己使用也可以使用注解的方式(@Aspect),xml的方式和动态代理的方式实现。
16.Spring事务失败原因
1)事务代理的方法一定要是public,否则不支持事务
2)方法被final修饰(spring事务基于aop实现通过代理类,但是被final修饰后代理类无法重写该方法)
3)没有被Spring管理(没有五大注解)
4)多线程调用,事务方法和调用方法不在同一个线程中,不同线程现获取到的数据库连接不同,从而是两个不同的事务
5)表不支持事务(可能使用的存储引擎是myisam)
17.什么时候使用mq做异步处理,什么时候新开一个线程做异步处理比较好
mq异步处理适用于在分布式系统中,适合不同服务之间的异步通信,具有更好的可靠性和稳定性,而新开一个线程只适用于简单的异步场景,无法在分布式系统中执行,同时mq的消息是可以存储在磁盘上的(持久化),是不会丢失的,但是使用多线程,当我们异常结束进程或者崩溃,未处理完的任务就会有数据丢失
相关文章:
面试题汇总(一)
熙牛医疗面经 1.平衡二叉树的概念 平衡二叉树是一种二叉搜索树,他的左右两个字数的高度差绝对值不超过1,并且左右两个子树都是一颗平衡二叉树,通过左旋,右旋,左右双旋,右左双旋,来保持平衡&…...
论坛系统测试报告
目录 一、项目背景二、论坛系统测试用例思维导图三、论坛系统测试3.1界面测试3.2登陆测试3.3主页测试3.4个人中心测试 四、自动化测试脚本4.1配置驱动4.2创建浏览器类4.3功能测试4.3.1登陆测试4.3.2注册测试4.3.3主页测试4.3.4帖子编辑4.3.5运行主代码 五、BUG分析六、测试总结…...
算法比赛中处理输入和输出
在算法比赛中,不推荐使用 Scanner 和 System.out.println()。Scanner 线程安全,有大量同步操作,读取输入时每次都要解析数据类型,处理大数据量时性能开销大、效率低,易使程序超时间限制。System.out.println() 每次调用…...
llama.cpp: GGUF格式及模型量化参数介绍
GGUF格式介绍 GGUF(GPT-Generated Unified Format)是推理框架llama.cpp 中使用的一种专为大语言模型设计的二进制文件格式,旨在实现模型的快速加载和保存,同时易于读取。GGUF格式的特点: 单文件部署:模型…...
PGlite:浏览器中运行的PostgreSQL
PGlite 是一款基于 WebAssembly(WASM)构建的轻量级 PostgreSQL 数据库引擎,旨在简化开发者在浏览器、Node.js、Bun 或 Deno 环境中运行 PostgreSQL。PGlite 无需复杂的安装或配置,特别适合开发测试、本地化应用及快速原型设计。 一…...
【C++】vector(上):vector的常用接口介绍
文章目录 前言一、vector的介绍二、vector的常用接口介绍1.vector类对象的常见构造2.vector iterator 的使用3.vector类对象的容量操作3.1 size、capacity 和 empty的使用3.2 reserve的使用3.3 resize的使用 4.vector类对象的访问(包含data:返回底层数组…...
【算法】二分查找(上)
目录 一、写好二分查找的四个步骤 二、在排序数组中查找元素的第一个和最后一个位置 三、搜索插入位置 四、x的平方根 通过上篇文章【手撕二分查找】,我们知道了二分查找的【四要素】:初始值、循环条件、mid的计算方式、左右边界更新语句。 循环条件…...
【人工智能】GPT-4 vs DeepSeek-R1:谁主导了2025年的AI技术竞争?
前言 2025年,人工智能技术将迎来更加激烈的竞争。随着OpenAI的GPT-4和中国初创公司DeepSeek的DeepSeek-R1在全球范围内崭露头角,AI技术的竞争格局开始发生变化。这篇文章将详细对比这两款AI模型,从技术背景、应用领域、性能、成本效益等多个方…...
linux nginx 安装后,发现SSL模块未安装,如何处理?
?? 主页: ?? 感谢各位大佬 点赞?? 收藏 留言?? 加关注! ?? 收录于专栏:运维工程师 文章目录 前言SSL模块安装 前言 nginx 安装后,发现SSL模块未安装,如果不需要配置SSL域名,就无关紧要。但是很多时候客户后…...
蓝桥杯 - 每日打卡(类斐波那契循环数)
题目: 解题思路: 假设输入数值为number 分析题目,如果想要解决这个问题,我们需要实现两个方法,第一个检查number是否是类斐波那契,第二个是模拟1e7 - 0的过程,因为是求最大的,那么我们从1e7开始…...
深入探索C++17文件系统库:std::filesystem全面解析
前言 在C编程中,文件系统操作是许多应用程序的基础功能之一。无论是读写文件、创建目录,还是遍历文件系统,文件系统操作几乎无处不在。然而,在C17之前,标准库并没有提供一个统一、高效且易用的文件系统操作接口。开发…...
LLM | 论文精读 | GIS Copilot : 面向空间分析的自主GIS代理
论文标题:GIS Copilot: Towards an Autonomous GIS Agent for Spatial Analysis 作者:Temitope Akinboyewa,Zhenlong Li,Huan Ning,M. Naser Lessani等 来源:arXiv DOI:10.48550/arXiv.2411.…...
Unity 适用Canvas 为任一渲染模式的UI 拖拽
RectTransformUtility-ScreenPointToWorldPointInRectangle - Unity 脚本 API 将一个屏幕空间点转换为世界空间中位于给定RectTransform 平面上的一个位置。 实现 获取平面位置。 parentRT transform.parent as RectTransform; 继承IPointerDownHandler 和IDragHandler …...
基于遗传算法的无人机三维路径规划仿真步骤详解
基于遗传算法的无人机三维路径规划仿真步骤详解 一、问题定义 目标:在三维空间内,寻找从起点到终点的最优路径,需满足: 避障:避开所有障碍物。路径最短:总飞行距离尽可能短。平滑性:转折角度不宜过大,降低机动能耗。输入: 三维地图(含障碍物,如立方体、圆柱体)。起…...
windows下使用Hyper+wsl实现ubuntu下git的平替
文章目录 前言一、安装Hyper、wsl1. 安装Hyper2. 安装wsl 二、配置Hyper三、安装并使用git总结 前言 众所周知,Ubuntu下安装git只需执行sudo apt install git即可使用默认终端拉取代码,但是Windows上使用git既没有linux便捷,又没有MacOS优雅…...
基于Java+SpringCloud+Vue的前后端分离的房产销售平台
基于JavaSpringCloudVue的前后端分离的房产销售平台 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接&#x…...
以影像技术重构智能座舱体验,开启驾乘互动新纪元
在汽车智能化浪潮席卷全球的今天,座舱体验早已突破传统驾驶功能的边界,成为车企竞争的核心赛道。美摄科技凭借其在图像处理与AI算法领域的深厚积累,推出全链路智能汽车图像及视频处理方案,以创新技术重新定义车载影像系统…...
deepseek在pycharm 中的配置和简单应用
对于最常用的调试python脚本开发环境pycharm,如何接入deepseek是我们窥探ai代码编写的第一步,熟悉起来总没坏处。 1、官网安装pycharm社区版(免费),如果需要安装专业版,需要另外找破解码。 2、安装Ollama…...
LLM大型语言模型(一)
1. 什么是 LLM? LLM(大型语言模型)是一种神经网络,专门用于理解、生成并对人类文本作出响应。这些模型是深度神经网络,通常训练于海量文本数据上,有时甚至覆盖了整个互联网的公开文本。 LLM 中的 “大” …...
尚庭公寓项目记录
数据库准备 保留图像时,保存图像地址就可以数据表不是越多越好,可以用中间表来实现俩个表之间的联立这样方便查数据但是却带来性能问题而减少表的jion但是提高性能,以冗余来换去性能采用MySQL,InnoDB存储引擎物理删除和逻辑删除逻…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究
摘要:在消费市场竞争日益激烈的当下,传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序,探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式,分析沉浸式体验的优势与价值…...
小智AI+MCP
什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析:AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github:https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…...
