美团日常面经-Java后端一面

1. 布隆过滤器;缓存空结果;参数校验。
2. 延迟双删;基于binlog监听;设置合理缓存过期时间兜底。
3. RDB。AOF
4. RDB更快。
5. 单线程处理命令 + I/O多路复用。单线程避免锁竞争;I/O多路复用使单线程高效管理大量连接,仅当socket就绪时处理IO。
6. 读未提交、读已提交、可重复读、串行化
7. 可重复读。解决脏读、不可重复读;通过MVCC和间隙锁减少幻读发生。
8. 默认 B+树。
9. 红黑树的二叉搜索树,树高较高;范围查询需中序遍历效率低;节点存储利用率较低。 B+树的更矮胖;叶节点链表结构使范围查询/全表扫描极高效;节点存储更多键。
10.使用二级索引查询时,若所需列不在该索引中,需根据索引中存储的主键值,回到聚集索引 树中查找完整行数据。额外磁盘IO是主要性能损耗。
11.查询:连接器、查询缓存、分析器、优化器、执行器、返回结果。更新:额外涉及事务开启、写undo log、执行器调引擎修改内存数据、写redo log、写binlog、提交事务。
12.更新:写undo/redo,改内存,写binlog,提交redo;两阶段提交。
13.继承Thread类,实现Runnable接口,实现Callable接口,使用线程池提交任务。
14.核心线程数、最大线程数、存活时间、时间单位、工作队列、线程工厂、拒绝策略。
15.CountDownLatch要求子线程主动存结果到共享集合后countDown(),主线程await()阻塞等待;CyclicBarrier由线程在await()前存结果,最后到达的线程触发汇总;而线程池通过主线程收集Future并调用get()阻塞获取结果。
16.start() 启动新线程,run()普通方法调用。
17.数组+ 链表/红黑树。
18.非线程安全。
19.JDK8 ConcurrentHashMap:改用 synchronized 锁单个桶 + CAS + volatile,替代 JDK7 分段锁,并发度更高。
20.MQ 消息可靠:依赖生产者可靠投递(含重试)、Broker 持久化与高可用、消费者手动 ACK 与幂等处理三方协同保障。
21.消费者幂等性:通过唯一约束(如 DB/REDIS 记录消息 ID)防止重复处理,确保多次消费结果一致
全部评论
过了吗,回答的挺好的
点赞 回复 分享
发布于 2025-12-24 17:17 北京

相关推荐

2025-12-22 15:03
已编辑
门头沟学院 Java
哈喽啊各位,潜水党第一次发帖,如有不妥之处请多包含。昨天刚从考场上下来,对于之后的安排有点摸不着头脑,于是想到在这里求助。在这篇文章中我会简述我的个人情况和对于今后方向的一些想法,希望各位能给一点意见建议,我都会认真参考。【基础信息】26届,双非二本科班,以就业为目的选择了考研。【考试情况】10月报志愿那会为了求稳,报了一所在广州的双非一本(依旧双非),专业是人工智能专硕。当时就是图个稳上还有地理位置优势,不过听说这学校工科专业就业一般般,考完心情有点复杂。至于为什么报人工智能——因为听说计算机专业的导师研究深度学习的比较多,想着既然研究的东西都差不多,我就业的方向大概率也是开发,跟硕士期间研究方向关系不大,所以不如报个分数相对低的(相对计专来说)。昨天刚考完研下来估分,总分比往年录取均分高个10分左右,感觉在初试分数上稳大半了。我报的院校这个专业往年复试没有笔试只有面试,个人认为还是准备个跟之后研究方向相关的项目比较踏实。【本科经历】大一:胡乱学了一堆东西,但全都是浅尝辄止拿不出手的程度(包括但不限于Spring全家桶、unity、qt),上力扣刷了一两百道题(当然现在忘得差不多了),总体来说走的是java后端路线。大二:进了学校一个实验室(这里成员很复杂,个人感觉偏商科,不是那种专门搞科研的地方)。实验室老师有一点横向资源,给我安排进了一个项目组,给一个小微型企业老板去做小型管理系统外包。当时吭哧吭哧学SpringBoot那套东西,小半年时间自己学完去把后端的crud写了出来。由于在中期项目组管理上出了很大问题,导致原定跟我合作的一个前端一直抽不开身,我负责的部分一直被搁置,这个项目最后也烂尾了。大三:11月左右从项目组跑路去准备考研。一是因为项目烂尾心态崩了写不动代码,二是有点受周边考研氛围影响,而且当时也觉得读个研对就业有帮助,顺势去考研了。由于从大三开始all in考研,本科期间没有实习,能拿得出手的只有两个SpringBoot管理系统(纯crud,没什么难点)和两个省三水赛(蓝桥杯和一个ppt大赛,懂的都懂)。【对于之后安排的想法】由于报了人工智能专业,觉得还是做个深度学习项目比较好面试。现在的问题在于不知道从哪里入手,上网找了一堆学习路线,感觉要学的东西很多,不知道在复试之前能不能做出个能跑的项目。我本科期间没怎么接触过人工智能项目,听说CV和NLP方向比较好做所以去具体搜了一下,结果更懵了——为什么这两个会同时夹在整体学习路径之间,我还以为能像开发技术栈那样学几个框架就能直接上手,太令人费解了。网上搜出来一大堆前置理论看得我很眼花,有种《嗯?我学完这个就能去调大模型、transformer、YOLO了吗?我是要去学基础知识还是直接学YOLO?不对,那些个算法和模型是拿来就套的还是怎么样?》这种纯小白疑问。虽然初试分数不错,但现在还是打算去准备一下就业的,去投点开发和测开,重新跟产业接轨一下。考研空窗了一年多,感觉敲代码脑子一片空白,大二那会积累的工程能力忘得差不多了,很难受。目前打算边熟悉之前做的项目边背点八股文,线上线下都投一投。如果深度学习那方面学得顺利的话,我打算拿一个系统和一个深度学习项目去复试,不知道这么做会不会有问题。如果能成功考上,打算尽量找个好说话放实习的导师,尽快达到毕业要求自己出去实习。本人对工作内容没什么情怀,纯因为待遇才走计算机路线,当时报广州的院校也是觉得那里方便实习,既然都读研了还是想冲一个满意的薪资的。【想问的问题】1. 对于复试有没有具体的建议,比如要准备什么项目之类的2. 想做深度学习项目的话要怎么入手,有没有推荐的路线(我现在想理清一下学习思路,也在担心能不能在复试前做出能跑的东西)3. 找工作的路径(因为我考研去了,只投过学校的线下招聘会,关于线上投递的路径想要有人提点一下)
考研人,我有话说
点赞 评论 收藏
分享
2025-12-20 13:10
门头沟学院 Java
项目 1.项目的难点 如何解决2.互斥锁的粒度是什么样的3.这个锁是每次往缓存里写任何数据都需要加锁吗4.比如说读的是多个优惠券的这种信息,可能有不同的人同时请求,他读的是不同优惠券的这个信息然后都被击穿的话,你是共用的是一把锁呢?还是每个优惠券一张锁呢?5.这个锁是怎么实现的6.nginx反向代理去保护后端服务器的原理是什么7.热门商品假如是在8点上架,8点的时候可能会有很多请求打过来,在redis中还没有,那这些请求都会去读数据库,这块应该怎么优化?8.假设redis判断用户购买资格成功,但是在扣钱的时候失败了应该怎么办9.有没有测过秒杀券一秒能够支持多少个请求,最大?10.测出来的2000是因为jmeter自己有性能瓶颈呢?还是说其他原因导致的性能瓶颈?11.假设我们想把qps提到10w,应该在哪些方面做什么样的改造?多个数据库怎么配置呢?写操作主要依靠主节点,加多个从节点对写操作意义不大,这块还能做什么优化?八股1.类的成员变量,方法的静态变量,这三种变量在多线程条件下哪个是线程安全的,哪类的静态变量,哪个是不安全的算法1.二叉树的平均高度:每一条路径的高度是根节点到叶子节点的长度2.一个不重复的升序数组,左移k次,给你左移后的数组,问左移了几次?如果数组中有重复的元素呢?
点赞 评论 收藏
分享
评论
3
10
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务