当前位置: 首页 > news >正文

面试题汇总(一)

熙牛医疗面经

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算法领域的深厚积累,推出全链路智能汽车图像及视频处理方案,以创新技术重新定义车载影像系统&#xf…...

deepseek在pycharm 中的配置和简单应用

对于最常用的调试python脚本开发环境pycharm,如何接入deepseek是我们窥探ai代码编写的第一步,熟悉起来总没坏处。 1、官网安装pycharm社区版(免费),如果需要安装专业版,需要另外找破解码。 2、安装Ollama…...

LLM大型语言模型(一)

1. 什么是 LLM? LLM(大型语言模型)是一种神经网络,专门用于理解、生成并对人类文本作出响应。这些模型是深度神经网络,通常训练于海量文本数据上,有时甚至覆盖了整个互联网的公开文本。 LLM 中的 “大” …...

尚庭公寓项目记录

数据库准备 保留图像时,保存图像地址就可以数据表不是越多越好,可以用中间表来实现俩个表之间的联立这样方便查数据但是却带来性能问题而减少表的jion但是提高性能,以冗余来换去性能采用MySQL,InnoDB存储引擎物理删除和逻辑删除逻…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

uniapp中使用aixos 报错

问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线, n r n_r nr​ 根接收天线的 MIMO 系…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙

WebGL&#xff1a;在浏览器中解锁3D世界的魔法钥匙 引言&#xff1a;网页的边界正在消失 在数字化浪潮的推动下&#xff0c;网页早已不再是静态信息的展示窗口。如今&#xff0c;我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室&#xff0c;甚至沉浸式的V…...

leetcode_69.x的平方根

题目如下 &#xff1a; 看到题 &#xff0c;我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历&#xff0c;我们是整数的平方根&#xff0c;所以我们分两…...

深入理解 React 样式方案

React 的样式方案较多,在应用开发初期,开发者需要根据项目业务具体情况选择对应样式方案。React 样式方案主要有: 1. 内联样式 2. module css 3. css in js 4. tailwind css 这些方案中,均有各自的优势和缺点。 1. 方案优劣势 1. 内联样式: 简单直观,适合动态样式和…...