校招 未知部门 / 后端开发 / 未知轮次
[面试日期] 2025-09-23 [面试时长] 55min
[学校背景] 未知 | 未知 [学历背景] 未知
[发布人] 面试之星官方收录
<h2>小红书-商业技术-一面凉经</h2>
<p>📍面试公司:小红书</p><p>🕐面试时间:55min (由于自己太菜 导致面试官吃饭吃晚了深表歉意)</p><p>💻面试岗位:后端开发</p><p>❓面试问题:</p><p>1、进程和线程的区别</p><p>2、进程快还是线程快?</p><p>3、进程是不是也是切换上下文?那么进程切换上下文快还是线程切换的快?进程切换上下文切换的是哪些东西,切换上下文需要注意哪些?(被问到沉默 最近两次开局都是这系列问题 做个笔记先)</p><p>这个大佬的视频很形象</p><p><a href="https://gw-c.nowcoder.com/api/sparta/jump/link?link=https%3A%2F%2Fwww.bilibili.com%2Fvideo%2FBV1Cfx7e2Eqr%2F%3Fspm_id_from%3D333.337.search-card.all.click%26vd_source%3D0c851c10f70e6a7940573b4642670a99">https://www.bilibili.com/video/BV1Cfx7e2Eqr/?spm_id_from=333.337.search-card.all.click&vd_source=0c851c10f70e6a7940573b4642670a99</a></p><ol><li>进程线程为什么要进行上下文切换:</li><li>进程上下文切换的意义:</li><li>让不同的程序(例如浏览器、IDE、数据库)都能“同时”运行在一个 CPU 上。 操作系统通过切换进程上下文,实现了 <strong>多任务操作系统</strong>,用户感觉多个程序并行执行。</li><li>保证系统中多个应用程序能公平获得 CPU 时间。</li><li>线程上下文切换的意义:</li><li>让一个进程内部的多个任务(线程)能够交替执行,比如浏览器的页面渲染线程、网络线程、JavaScript 执行线程。意义:提供了 <strong>并发执行的编程模型</strong>,让单个应用也能充分利用 CPU。</li><li>提供 <strong>资源共享</strong>(同一进程的地址空间、文件句柄等),降低通信成本。</li><li>保证应用内多个任务不会“饿死”,比如 UI 线程及时刷新界面,后台线程继续下载文件。</li><li>进程和线程的切换分别切换与哪些资源有关?</li><li>进程</li><li>CPU 寄存器状态</li><li>程序计数器(PC)</li><li>栈指针(SP)</li><li>通用寄存器内容(AX、BX 等)</li><li>内存管理相关</li><li>页表基址寄存器(CR3) </li><li>切换进程地址空间关联的虚拟内存空间</li><li>缓存/TLB 刷新(因为地址空间变了)</li><li>内核资源内核栈指针打开的文件描述符表信号处理器信息IPC(管道、消息队列、共享内存)等内核状态</li><li>调度器信息进程控制块(PCB,Process Control Block)中的内容:进程状态、优先级、CPU 时间片统计等。(核心内容)</li><li>线程</li><li>CPU 寄存器状态</li><li>程序计数器(PC)</li><li>栈指针(SP,对应自己的线程栈)</li><li>通用寄存器内容</li><li>内核资源(少量)</li><li>线程栈(独立)</li><li>线程局部存储(TLS, Thread Local Storage)</li><li>线程控制块(TCB, Thread Control Block)</li><li> 共享的资源(无需切换)</li><li>进程切换比线程慢的原因:</li><li>切换范围大:进程切换涉及地址空间和内核资源(PCB),而线程只需保存/恢复 CPU 上下文和线程栈。</li><li>硬件影响:进程切换要刷新 TLB、导致缓存失效,性能开销大。</li><li>系统开销:进程切换必须由内核介入,调度和资源管理比线程切换复杂。</li></ol><p>4、Mysql索引的数据结构是什么你知道吗?</p><p>5、Mysql索引为什么要选择B+树 不选B-树?</p><p>6、分析一下,当B+树和B-树目前全都在内存里面,那么此时查询10000条(不存在批量查询)那么此时谁查询的效率高?(这个问题的要点就是没有IO 那么B+树的优势就不存在了)</p><p>7、如果考虑IO为什么B+树比B-树搜索效率高?</p><p>8、Mysql的数据页大小是多少?</p><p>9、说一下你们的分布式锁的何时触发?</p><p>10、使用注解加分布式锁如何获得接口里面的参数?</p><p>11、SpringEL 为什么能获取到接口的参数?</p><p>12、AOP的错误捕获如何做的?</p><p>13、如果用try catch finally 来使用分布式锁 是不是就可以保证锁安全的使用和释放(程序宕机),如果出了问题,锁如何释放? Lua 脚本你会写吗?</p><p>14、对于promot 以及RAG 为什么使用向量数据库存储,ES也是存储大量数据的 为什么使用ES?以及RAG的在你们业务上的使用流程。</p><p>15、如何保证用户输入的内容能够更准确的匹配到tool接口上?你们使用tool接口做了什么逻辑?tool接口匹配的原理是什么?</p><p>算法:两个股票问题(贪心+dp) dp的递推脑子不中用没推出来 最后只说了下思路</p><p>🙌面试感想:面试官实力雄厚能够很流畅的说出场景引出问题,并且一直在引导回答,给了很多思路。奈何平时只背死八股还不够灵活。</p><p>害 秋招真的得要把408一步一步复习啊😵</p><p><img src="https://uploadfiles.nowcoder.com/images/20250923/261341502_1758559223681/3519C4076EC010C3D0C4C1CC45D930FB"></p><a>#小红书秋招#</a><a>#小红书#</a><a>#秋招笔面试记录#</a><a>#发面经攒人品#</a>
AI 推荐面试题
