快手 Java研发实习生 一面面经

1.先盘了20分钟项目

2.mysql索引了解吗?说了一堆(自以为很懂,结果面试官给我细扒聚集索引的细节,一下懵了)。说的不是很清楚我当时,其实MYISAM引擎和 InnoDB最主要的区别就是MYISAM索引和数据时分开放的,它索引的实现都是非聚集索引是叶子结点存放的都是指向该条记录的指针,而InnoDB中聚集索引一张表只能有一个,一般来说就是主键索引(非NULL,不可重复),其他都是非聚集索引(也叫二级索引或者辅助索引),比如唯一索引,普通索引,前缀索引,这些索引的叶子结点里存的就是主键值,根据主键值再回表查(不一定会回表,如果要查的字段正好就是这个索引的话)。

(1)聚集索引一张表只能有一个吗?  是的,只能有一个。

(2)B+树一般是几层啊?(一下给我干懵了,之前看到过说是 三层的话就可以存很多了。B+树让全部数据存到叶子结点中,其他结点不存放数据,每个非叶子结点的分叉大大增多,代价就是每次查找都必须走到叶子结点。)

这里参考:https://blog.csdn.net/qq_37102984/article/details/124296196

(先说结论:一般B+树高大约为1~3层(通过主键索引查询,通常磁盘io数为1~3次),可容纳记录数约2000w条)

在 MySQL 中我们的 InnoDB 页的大小默认是 16KB,当然也可以通过参数设置。

在查找数据时一次页的查找代表一次 IO,所以通过主键索引查询通常只需要 1~3 次 IO 操作即可查找到数据。

①MySQL的InnoDB存储引擎的最小存储单元是页(大小默认是16k,可通过参数设置)。页可用于存放B+树叶节点数据,也可用于存放B+树非叶节点的 “键 + 指针”。

②索引组织表通过非叶节点的 “二分查找” 法以及指针确定数据在下一层的哪个页中,进而再去叶节点的数据页中查找到所需数据。

一个非叶节点可容纳约1170个指针,这里假设一行记录数据大小为 1KB,那么底层叶节点一页16K就能存16条记录。叶节点数 * 一个叶节点能存放的记录数 = 1170 * 16 = 18720条 记录数。

(3)非聚集索引怎么找到真正的数据的?

这里应该分引擎说的,我乱了阵脚。

在MYISAM中,找到叶子结点,叶子结点的指针指向的就是那条记录,跟着指针查到记录即可。在InnoDB中,非聚集索引(也就是一般我们创建的索引)叶子结点存的是主键,拿到主键之后再回聚集索引(主键索引)中查找。

3.Redis过期策略(没答好,就答了一个惰性删除...)

4.Redis锁用到过吗?(回答的不好)

5.消息队列相关的,这个队列是存在哪里的?消息队列有什么作用?具体的工作原理是什么?

没有算法题,面试官体验感觉比字节的好一些....但是我答得很不好,当天还是约了二面,我怀疑在cpu我嗨呀

#快手面试#
全部评论
蹲个二面面经~
1 回复 分享
发布于 2022-10-11 14:42 重庆
求问是哪个部门
点赞 回复 分享
发布于 2022-12-03 21:09 北京
老哥是哪里投的啊
点赞 回复 分享
发布于 2022-11-26 14:11 辽宁
佬,明年能给我内推吗哈哈哈
点赞 回复 分享
发布于 2022-11-24 22:43 陕西
有后续吗老哥
点赞 回复 分享
发布于 2022-11-18 23:36 甘肃
老哥是92吗
点赞 回复 分享
发布于 2022-11-06 16:57 黑龙江
好细,谢谢大佬
点赞 回复 分享
发布于 2022-11-03 23:26 重庆
今晚快手一面好慌
点赞 回复 分享
发布于 2022-10-11 16:20 辽宁

相关推荐

10-20 10:35
东华大学 C++
在分享之前,我想先描述两个场景:​场景一​:大四那年,保研后的日子本该无忧无虑。我却站在医院的走廊里,听着医生最终的确诊报告——父亲肝癌晚期。那一刻,我知道,家里的顶梁柱,要换成我了。​场景二​:去年除夕夜,当别人家围坐一团看春晚时,我在房间里,对着电脑一遍遍刷着LeetCode,反复修改我的简历。我知道,过年后的“金三银四”,是我必须抓住的日常实习机会。是的,这就是我的背景。双非本科,靠着全院第二的成绩保送到一所211读硕。学费靠贷款,生活费靠奖学金和实习。从读研第一天起,我就清楚,我的人生剧本里,没有“轻松”二字。但今天,我想告诉你的不是这些艰辛,而是这些艰辛教会我的东西——一套在“一无所有”的情况下,如何为自己做出最优选择的生存法则。​​ 这套法则,让我在秋招中,拿到了腾讯、拼多多、米哈游、百度的意向。​第一部分:我的Offer决策框架——超越薪资的立体计算​对于我们这类学生,选择第一份工作,就像在下一盘不能输的棋。只看薪资,无异于赌博。我为自己建立了一个 ​​“四维评估模型”​​ ,它帮我看清了迷雾。​维度一:现金价值——这是“活下去”的硬指标​​算清总账​:月薪*发放月数(务必问清年终奖是“口头说说”还是“白纸黑字写入合同”?)、签字费、股票/期权(价值几何?分几年给?)。把这些加起来,才是你第一年的真实总收入。​算清时薪​:这是一个极其重要的概念。把年薪总额,除以你预估一年的工作总小时数(包括加班)。你会发现,某些公司看似高昂的总包,在折算成时薪后,吸引力会大打折扣。​身体是革命的本钱,对于我们这些没有退路的人,本钱尤其不能轻易透支。​​​看清隐性福利​:公积金比例(最高12%的公司,相当于每月给你强制存下一笔可观的买房基金)、补充医疗保险、餐补交通补。别小看这些,加起来可能让你的实际收入多出不少。​维度二:成长价值——这是“跳得高”的弹簧​这是我最看重的部分,它决定了三年后我是谁。​业务是核心还是边缘?​​:我会直接问面试官:“我入职后具体参与哪个项目?它是部门的核心业务吗?”去核心业务,意味着你能接触最复杂的问题,你的工作成果能影响千万用户,这份经历是未来跳槽时最硬的通货。岗位的技术天花板在哪里?我希望加入能处理系统性难题的团队,而不是成为一个“CRUD boy”。是去优化服务器的帧同步、应对海量流量,还是重复实现常见的业务功能?这直接决定了你技术护城河的深度。​导师是贵人还是过客?​​:面试时,我极度关注未来的直属上级。我会问:“团队对新人的培养机制是怎样的?”一个愿意分享、给你空间试错的导师,比公司名字的光环更重要。他是你职业生涯的第一个贵人。​维度三:平台价值——这是“走得远”的护照​​第一份工作的品牌效应​:大厂背景是一个强大的信用背书。但它内部是活力十足还是流程臃肿?这需要向内部的师兄师姐打听。​内部的活水机制​:再好的工作也可能有不适合的时候。公司是否支持内部转岗?这相当于给你买了一份“职业保险”,提供了宝贵的二次选择机会。​维度四:生活价值——这是“跑得久”的保障​​工作强度​:我坦诚地评估自己对加班的接受度。是能接受短期内的高强度冲刺,还是更看重工作与生活的平衡?这没有对错,只有合适与否。​一份工作如果快速消耗掉你的热情和健康,那再高的薪水也是亏本买卖。​​​城市选择​:考虑这个城市的房价、生活成本和我未来的安家计划。和另一半的未来计划等等。​我的实操方法​:我用一个Excel表格,给这四个维度的细项赋予我个人的权重(比如现阶段,我给“现金”和“成长”的权重最高),然后为每个Offer打分。这个看似笨拙的方法,能极大地减少感性冲动,让选择变得无比清晰。​第二部分:无人托举——如何将劣势炼成你最硬的骨头​这是我想重点说的。没人托举,意味着每一步都得自己趟。但反过来看,这也逼我们练就了最强大的生存技能。​心态革命:从“求职者”到“CEO”​​我们必须彻底摆脱学生心态。你不是在“求”一份工作,你是在为自己的“人生有限公司”寻找一个最重要的战略合作伙伴。于是,你会主动去研究行业报告,会像侦探一样搜集目标公司的信息,会勇敢地去链接陌生前辈寻求建议。​这种CEO式的全局视角和决策力,是职场中最顶级的能力。​​​终极武器:你的“韧性”就是最动人的故事​在面试中后期,当面试官问我“你最大的优点是什么”时,我不会只说项目。我会坦诚而简短地提及我的经历,然后话锋一转:“这段经历让我具备了极强的责任心和在压力下保持专注的能力。我相信,这种对结果负责到底的韧性,正是处理复杂业务场景中最需要的品质。”​记住,这不是诉苦,而是亮剑。​​ 你在告诉对方,你是一个能扛事、能成事的可靠伙伴。​谨慎试错,但绝不畏缩​我们没有那么多筹码,所以每一次尝试都要尽可能有价值。我的策略是:​用实习来低成本试错。​​ 从京东到腾讯,我通过实践搞清了自己不喜欢什么、热爱什么。这比任何职业测评都准。​最重要的认知:你,就是自己最坚实的托举​回头看看,你靠自己走过的路,获得的技能,克服的困难——这些才是你脚底下最结实的地基。当我拿到实习工资,给母亲转去一笔钱时,我明白,我已经开始为自己和家人建造避风港了。​写在最后:给和我一样的你​牛友们,我们或许起点不同,但人生的赛道是场马拉松。没有伞的孩子,一开始确实跑得狼狈,但我们也因此练就了最强的耐力和对天气最敏锐的感知。在选择Offer的十字路口,在满足基本生存所需的基础上,​请务必选择那个能让你持续增值、并且不会过快消耗掉你内心那团火的地方。​​我们的避风港,一砖一瓦,都得靠自己垒。但请相信,当你垒好地基的那一刻,你会发现,这座你自己建造的港湾,比任何现成的都更坚固、更温暖。祝愿每一位在雨中奔跑的牛友,最终都能为自己建成一座遮风挡雨的殿堂。欢迎在评论区一起交流,我们的每一步,都算数。---(完)---
没有家庭托举的我是怎么找...
点赞 评论 收藏
分享
评论
12
75
分享

创作者周榜

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