【面试复盘】北京-快手-Java开发工程师(已意向)

第一次投递:上海-Java开发工程师,无笔试,部门初筛挂;
第二次投递:北京-Java开发工程师,无笔试,获得面试机会;
能早投尽量早投,挂了还可以继续投递,快手今年可以无限制次数投递,最好还是投北京,感觉岗位更多一点;
  • 面试部门:研发线-平台研发部-监控部门(应该是面向快手内部做中间件的);
  • 面试流程:连续两轮技术面(牛客网链接-视频面试)+HR面(电话);
  • 面试感受:快手的面试官比较看中面试者的代码能力,也就是实际的应用能力,而不单纯是八股,需要会灵活使用;

一面(45min)

1.死锁?
2.讲一下如何实现多并发,对比一下synchronized ,volatile 等?
3.LRU算法和LFU算法,讲一下什么是缓存污染?
4.写一下LRU算法,然后改成线程安全的?
5.反问环节:询问了具体的技术栈和部门主要做的方向;

二面(45min)

1.自我介绍+聊项目(20min)
2.知道的索引有哪些?
3.类加载过程?
4.类加载会出现的异常?类找不到?链接异常?
5.新生代垃圾回收过程?用的算法?为什么这样设计
6.讲一下hashmap的扩容
7.HashMap 的长度为什么是2的幂次方
没给反问环节,直接就结束了;

HR面(20min)

强调部门做的是纯技术,提供平台支撑服务的;

9.30 意向书

9.26HR联系说开始陆续发意向,让不要着急;
国庆前一天晚上正在外边吃饭收到意向书;

总结:

① 个人无实习,无框架项目,只有两个教研室项目,只能硬着头皮和面试官讲,还好对自己的项目比较熟悉,只要面试官不打断就继续讲;
② 多背背常考的代码题,比如LRU缓存,自己遇到好几次了,还要会写测试用例;
③ 多看底层源码,有时间的话相关的知识点做好自己实际动手操作一下;

面试问题参考答案文档:6-快手-正式批.note
链接:http://note.youdao.com/noteshare?id=20458f0672bb49a56c9ddb1f00ffead2&sub=C478DBA080F4407AA78CD00***92

#面试复盘##面经##面试题目#
全部评论
老哥二面完多久通知过了的
1 回复 分享
发布于 2021-09-21 17:08
916271919 快手2022校招唠嗑qq群,来互通有无分享信息呀!民间群非官方,六百多人啦
点赞 回复 分享
发布于 2021-09-26 19:13
同java  楼主什么部门呀
点赞 回复 分享
发布于 2021-09-26 18:49
为什么我的快手5面,目前是第4面技术面。。。
点赞 回复 分享
发布于 2021-09-22 16:27
真的这么简单?
点赞 回复 分享
发布于 2021-09-22 13:12
一面完没继续面就是凉么
点赞 回复 分享
发布于 2021-09-22 07:03
大佬面试什么形式?视频面吗?
点赞 回复 分享
发布于 2021-09-22 00:22
两边大概率白菜🥬
点赞 回复 分享
发布于 2021-09-22 00:11
许愿快手捞我简历
点赞 回复 分享
发布于 2021-09-21 21:46
也可以试试去哪儿哈 第一批这两天面试,等下一批流程 内推更快:https://www.nowcoder.com/discuss/732239
点赞 回复 分享
发布于 2021-09-21 18:51
咋就两面啊😂
点赞 回复 分享
发布于 2021-09-21 18:41

相关推荐

04-13 11:21
已编辑
北京航空航天大学 Java
年份:2026月份:2月面试轮次:三面岗位:中间件研发/SRE专家难度:⭐⭐⭐⭐⭐面试回顾:“设计一个用于RocketMQ/Kafka的消息轨迹追踪与全链路诊断平台。目标:1)能对每秒百万级的消息生产/消费进行无侵入、低开销的轨迹采集;2)能还原任意一条消息的完整生命周期(从哪个Producer、经过哪些Topic/Queue、被哪个Consumer消费、处理成功/失败、耗时多久);3)当出现消息堆积、重复消费或丢失时,能快速定位瓶颈或异常节点。给出架构设计、数据采集方案、存储与查询引擎选型。”💡 解析:这是一道“可观测性”领域的顶尖难题,将消息中间件与分布式追踪深度结合。它要求超越简单的监控报警,构建一个能进行事后复杂调查的“病历系统”,是SRE和中间件团队的核心能力。设计思路:应用业务场景:这是保障抖音电商下单、支付、库存扣减等核心链路最终一致性的生命线。当用户支付成功但订单未更新时,运维人员可以凭借支付中心发出的消息ID,在这个平台中快速查明:消息是否发出?是否成功存储到Broker?库存服务是否已消费?消费耗时多久?是否抛出了异常?从而在几分钟内定位是网络问题、代码BUG还是数据库故障。核心考点:分布式追踪原理(OpenTracing, OpenTelemetry)消息中间件(RocketMQ/Kafka)的客户端与Broker端原理海量日志/时序数据处理架构(ELK/EFK, ClickHouse)流式计算(Flink)在可观测性场景的应用低性能损耗的埋点设计与异步编程实践(避坑指南):采样率控制:        全量采集在洪峰期可能压垮系统。必须支持动态采样(如1%采样率),并在发生错误时(如消费失败)自动提升该链路的采样率为100%,确保问题可被追踪。上下文传递:            traceId必须在整个异步消息链路中传递,包括线程池切换、异步回调、跨服务RPC调用,否则链路会断裂。存储成本:            轨迹数据量巨大,必须设计清晰的生命周期策略(热数据ES,温数据ClickHouse,冷数据归档到对象存储)。🚨 趋势押题预测预测名称:基于消息轨迹的智能根因分析与自愈系统押题题目:“在上述轨迹追踪平台的基础上,设计一个智能根因分析与自愈系统。要求:1)系统能自动分析消息堆积、延迟增高的故障,通过关联 metrics、trace、log 数据,自动定位到具体的服务、代码方法或基础设施层(如网络、磁盘);2)在识别出已知模式(如某数据库慢查询导致消费阻塞)后,能自动执行预案(如扩容、重启消费者、流量调度);3)生成可读的故障分析报告。阐述如何实现多源数据关联、根因分析算法,以及安全自动化的边界。”押题依据:公开招聘需求:在BOSS直聘和拉勾网上,字节跳动2026年发布的“SRE”、“可观测性引擎研发”岗位中,超过70% 的JD明确要求“有AIOps、智能运维、根因分析项目经验”或“熟悉OpenTelemetry标准”。这标志着运维正从“监控告警”向“智能诊断”演进。行业技术风向:**CNCF(云原生计算基金会)** 在2025年的年度报告中,将“AIOps”和“可观测性”列为增长最快的两大技术领域。KubeCon 2025 上有多个议题专注于“Using eBPF and ML for Root Cause Analysis”。开源项目动态:SkyWalking、Elastic APM 等主流APM项目在2025年均增加了机器学习检测异常的插件或集成。这证明智能分析已成为可观测性工具演进的下一站。官方技术发声:    火山引擎在2026年初的“云原生日”活动中,发布了“可观测性套件”的升级,重点宣传了其“智能诊断”功能,表明这是字节对外的技术产品方向,必然驱动内部技术栈对齐和人才要求。押题逻辑理由:当前面试题考察的是构建可观测性的“数据采集与查询”能力,这是基础。而行业公开的技术趋势(CNCF报告)、人才市场的明确需求(招聘JD)、以及字节自身对外的产品发布(火山引擎智能诊断),三者共同且强烈地指向了下一个技术制高点:利用已收集的海量可观测性数据,通过算法实现自动、精准的故障定位与自愈。面试官通过此题,能筛选出不仅会搭建系统,更能思考如何让系统产生“智能”、直接赋能业务稳定性的顶尖候选人。押此题,是基于公开的招聘要求、行业共识与公司产品路线图的强关联推导。核心考点:AIOOps基本理念、多源数据关联分析、时间序列异常检测算法、故障模式库、自动化运维的安全边界。适配岗位:    SRE专家、可观测性平台架构师、中间件研发。押中概率:    【80%】 (行业明确趋势+招聘需求显性化+内部技术产品化)// 【代码示例】基于简单规则的根因模式识别器(概念示例)@Componentpublic class RootCauseAnalyzer {@Autowiredprivate MetricService metricService;@Autowiredprivate TraceService traceService;@Autowiredprivate IncidentRepository incidentRepo;public Optional<Diagnosis> analyze(Alert alert) {// 1. 获取关联时段内的多维数据Instant windowStart = alert.getFireTime().minusSeconds(300);Instant windowEnd = alert.getFireTime();// 获取相关服务的延迟、错误率指标Map<String, Double> latencySpike = metricService.getTopNSpikes("service_latency", windowStart, windowEnd, 5);// 获取慢Trace样本List<SlowTrace> slowTraces = traceService.getSlowTraces(windowStart, windowEnd, 10);// 获取错误日志聚合List<ErrorPattern> errorPatterns = logService.getErrorPatterns(windowStart, windowEnd);// 2. 应用规则进行模式匹配 (此处为简化示例,实际可能使用决策树或图算法)// 规则A: 如果某个服务S延迟飙升,且其下游依赖DB的慢查询比例同时飙升for (String spikedService : latencySpike.keySet()) {List<String> downstreamDBs = getDownstreamResources(spikedService, "DB");for (String db : downstreamDBs) {if (metricService.isSpiked(db + "_query_duration", windowStart, windowEnd)) {// 匹配到“数据库慢查询导致服务延迟”模式return Optional.of(new Diagnosis("DB_PERF_ISSUE",String.format("服务[%s]延迟由数据库[%s]慢查询导致", spikedService, db),List.of(new Action("SCALE_DB", db), new Action("RESTART_CONSUMER", spikedService))));}}}// 规则B: 如果错误日志中频繁出现“ConnectionTimeout”,且对应主机网络指标异常// ... 其他规则return Optional.empty(); // 无法自动诊断}}宝子们,字节跳动真题和押题预测都给你们整理好了,赶紧【关注】评论、收藏起来好好准备,祝大家都能顺利上岸!💪~~~关注/评论区:接好运~~~~~~上岸~!
查看2道真题和解析
点赞 评论 收藏
分享
04-01 21:25
西北大学 Java
美团二战一面(核心本地商业-业务研发平台-美团app业务)承接了3000多的 QPS,服务端的机器有几台?这个接口(订单接口)的性能是?(响应多少毫秒) 返回哪些信息?订单列表只能看到一个商品,还是说是有个商品列表呢?分页的 每一页返回多少商品数据啊?Redis 里面主要存哪些东西本地缓存里面主要存在哪些东西 为什么固定的放在内存里面Redis 是多久更新一次吗?假设我在服务端,变更了一个库存,然后变更在那个接口发现超时了,就是你变更的时候发现返回了一个报错,但是后台其实是已经变更成功了,这种情况下怎么处理?(换了种说法 结合场景)用户下单,然后下单我调接口的时候,接下单接口超时了。但是这只是因为网络问题超时了,但是它内部其实扣减库存啊什么的都已经成功了。这种情况下怎么处理?这个 token(防重) 是在什么过程中去生成的?乐观锁解决超卖怎么解决的?为什么要用乐观锁呢?你的个性化推荐,高峰期不是会有很多很多用户会下单失败吗?JWT 的令牌认证具体是怎么做的?JWT 的三次校验(三型校验)ai封装那些订单查询、配送咨询这些问题,这个具体是怎么去做的?你是直接用用户提问的,然后直接调用大模型去询问的?你怎么知道配送状态的?因为你的那些配送不是都是兼职吗?用户下完单之后,你怎么给订单分配给兼职呢?智能客服是实现 7×24 小时智能回复。需要做到 7×24 小时吗?你还实现了那个性化菜品推荐,这具体是怎么去做的?你的那个订单数据表跟用户表,这两张表是怎么去设计的?问一个 AI 的吧,你做了一个客服问答,对吧?但是你是去调用自己封装了几个tool,然后让大模型去调用嘛,那我也想做一个智能客服,但是我的智能客服可能是基于一些,比如说我是医院,医院需要做一个智能客服,然后我会把一些那个患者常问的一些医疗上面的一些事情作为一个知识库,然后作为一个回答。那我应该怎么设计这个客户问答系统?把它给放到知识库里面,比如说我怎么切片?然后你刚讲到那个用户提问,敏感词过滤,这些我怎么去给它分词?怎么去做增强等等。按照你的那个分片,假设我按照你的那个分片形式去分片,然后我发现我检索出来的内容好像相关性并不是很强,我怎么去解决?检索相关性的算法与方案那个 Spring 框架里面有用到哪些设计模式啊?Autowired 跟 Resource 有什么区别?synchronized 跟 lock 有什么区别啊?Synchronized 底层。索引分哪几个索引?联合索引怎么创建?(具体到sql写法)不在创建表的时候创建这个索引,表已经创建完了,然后我要再创建这个索引,怎么做?like会不会走索引?MySQL 里边有哪几个日志啊?
点赞 评论 收藏
分享
评论
9
55
分享

创作者周榜

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