暑期实习求职过程以及面经分享,回馈牛友~
投递情况:
面经:
字节:
一面:
1.自我介绍
2.聊项目
(1) 项目需求是什么?数据库表怎么设计的?
(2) 点赞关系怎么存储的,有什么问题?(提到两种存储方式)
(3) 针对feed流考虑一个场景:用户上传视频很多,如何避免重复观看某个视频
3.介绍一下布隆过滤器
4.介绍一下线程池
5.介绍一下redis的集群模式
6.哨兵模式的选举过程了解吗?选举算法呢?(raft算法)
7.用过什么分布式锁,介绍一下原理
8.看你有用过雪花算法,能介绍一下原理吗,是否会出现id相同的情况
9.介绍一下责任链模式
10.算法:
(1) leetcode22 括号生成
(2) leetcode45 跳跃游戏II (紧张,没做出来,回来一看之前还做过,蚌埠住了...)
(3) leetcode69 x的平方根 (看我上题没做出来出道简单的,秒了)
11.反问表现,还有哪些值得改进的地方(回答可以多刷leetcode,蚌埠住了)
总结,hot100还得去复习一遍...
二面:
1.自我介绍
2.介绍一下虚拟内存
3.介绍一下ping原理、ping工作在哪一层、为什么没有使用传输层?(没答好,稀烂)
4.说一下数据是如何写入到磁盘的
5.对A, B建立联合索引,分析select * from xxx where A = 2 and B = 3存储引擎执行过程
6.系统设计:
实现一个评论功能:数据库模型->一个热点视频有很多评论怎么处理?
7.算法:类似leetcode76. 最小覆盖子串
8.反问
三面:
1.自我介绍
2.拷打项目
(1)点赞模块数据库怎么设计的?
(2)点赞数怎么存储的?为什么要用hash而不直接使用string?
(3)点赞数怎么更新?MQ重试期间用户查询不到点赞列表怎么办?
(4)削峰怎么做的?为什么要削峰?既然直接写入MQ并返回成功状态那用户怎么感知服务失败?
3.为什么要用RocketMQ?
4.redis的zset底层实现,为什么要有跳表?为什么要有hash表?
5.介绍一下ACID事务
6.写一道sql:就是扣减库存
7.介绍一下MySQL的隔离级别
8.算法:小明上课爱打瞌睡,给你n节课,小明上第i节课会获得ai的收益,再给你n个01序列表示小明是否会在第i节课睡觉,你要选一个时间提醒小明,这样小明会保证在之后的k节课保持清醒,请最大化小明的收益。(牛友们要注意代码的可读性,被面试官批评说太acm风格了)
9.智力题:10瓶药,有若干瓶被污染,被污染瓶的每粒药重1.1g,没被污染的每粒重1g,给你一个天枰,只允许称一次,请问如何求被污染的药瓶是哪些?(没做出来)
10.能实习多久?
11.自己的优缺点
12.go和Java使用起来的感受
13.为什么说go适合并发
14.协程和线程的区别?
15.反问
HR面:
1.实习地点和时长
2.未来的职业规划
3.成绩情况
4.介绍参加的竞赛
5.怎么学习后端的?
6.你在竞赛或项目中有没有遇到和组员意见不一致的情况?怎么解决?
7.近期遇到过最有压力的一件事是什么?怎么解决?
8.如果来实习你希望收获什么?
9.还面了哪些公司?会怎么选?
10.反问
腾讯:
PCG-腾讯视频 一面:(人生第一次面试上来就是腾讯,也是难绷,很紧张,答得不好)
1.介绍一下自己
2.websocket怎么实现的?底层基于什么
3.你的websocket如何支持成千上万的连接
4.介绍一下IO多路复用
5.介绍一下匹配算法和代码沙箱
6.你做这个项目给你的收获是什么
8.介绍一下视频上传,视频数据存在哪里
7.你的点赞系统如何应对频繁刷赞的情况
8.介绍一下redis的持久化过程
9.做题:给定一个序列,找第100大的数,不能使用任何库函数
10.反问
CSIG-腾讯云 一面:
1.介绍一下自己
2.算法:手写一个二叉搜索树,实现add和find操作
还问了:时间复杂度;Map相关,哈希冲突怎么解决?TreeMap这种和unordered_map这种有什么区别?什么时候用哪个?怎么评判哈希冲突是否严重?
3.问项目:
(1)你做这个项目的初衷是什么?
(2)OAuth2的流程,QQ一键登录的流程(授权码能否和访问令牌合并)
(3)介绍一下JWT,签名算法了解吗(实现原理)?
(4)无感登录怎么做的
(5)前后端即时通信怎么做的,怎么保证游戏的实时性和稳定性?
(6)WebSocket的消息组成了解吗?什么是消息帧?为什么要有消息帧?
(7)介绍一下匹配算法
(8)介绍一下MiniMax-Search和Alpha-Beta剪枝技术
4.简历写到:熟练掌握MySQL,深刻理解事务及其原理、索引、锁机制、MVCC、各种日志等,面试官问:"认真的吗?"(嘴角勾起一丝微笑,难崩)
(1)介绍一下MySQL的事务及其原理
(2)介绍一下MVCC
5.反问
(1)实习生会干些什么?
(2)部门语言:C++\Go
2024/4/10
PCG-腾讯视频 一面(2h 蚌埠住了)
1.互相自我介绍
2.算法
手写:
(1) 求和大于等于s的最小连续子序列长度
(2) 给定序列,每个元素是[1, n]的整数,求重复出现的数
(3) LRU
口述:
(1) 如何判断一个链表是否有环
(2) 100亿个数,每个数要么出现两次要么出现一次,求只出现一次的这个数
(3) 10亿个数,求第k大
3.介绍一下Java集合、介绍一下HashMap的原理
4.介绍一下MySQL的索引,为什么这么设计
5.介绍一下MySQL主从复制的原理 (面吐了,脑抽背到redis主从原理去了,背到一半刹车...尴尬)
6.介绍一下redis的持久化方式
7.介绍一下redis的数据结构。这些数据结构是怎么持久化的 (乱答)
8.redis的通信协议了解吗?
10.介绍一下TCP协议
11.time_wait了解吗
12.用过git吗,用过哪些命令?
13.用过哪些linux命令
14.如果我要获取一个目录下指定要求的文件,该用什么命令?
15.问项目
比较通用的:
(1) 介绍一下redis和MySQL一致性怎么保证的?
(2) 雪花算法原理
16.反问
阿里:
淘天
一面(电话面)
没有问项目,八股盛宴
1.介绍一下equals和hashcode
2.为什么重写equals要重写hashcode (答的不好)
3.hashmap的hash过程
4.hashmap的扩容过程
5.hashmap的底层实现
6.concurrenthashmap和hashmap的区别?concurrenthashmap底层的锁实现
7.ThreadLocal用过吗?什么场景下用?实现原理?会有什么问题?
8.ThreadLocalMap底层使用的HashMap吗?ThreadLocal底层为什么不维护一个Map以Thread为key,资源为Value?
9.什么是cas?
10.TCP三次握手和四次挥手
11.为什么握手要三次,挥手要四次?挥手什么时候变成三次?
12.MySQL的隔离级别,每种隔离级别下会有什么问题?
13.redis和MySQL的一致性怎么保证?
14.redis缓存击穿和缓存雪崩介绍一下,怎么解决?
15.分布式锁你是怎么用的?redisson实现分布式锁的原理?怎么加解锁?
16.redis的一致性算法了解吗?为什么要有这个?原理是怎么样的?
17.rocketmq满足cap的哪些?
18.算法:开根号,不能使用库函数,二分秒了
19.为什么想来实习?
20.反问
阿里国际
一面(电话面)
1.自我介绍
2.介绍一下参加青训营的收获
3.如何应对高并发请求,前端后端分别可以做什么?
4.项目架构
5.对于限流、实时流量和非实时流量限流怎么做?
6.dubbo组件有哪些?为什么消费端能够像调用本地方法一样去调用生产者?dubbo序列化方式有哪些?
7.rocketmq是如何保证可靠性的?
8.broker全挂了怎么办?
9.redis和mysql一致性怎么保证?
10.说一下一条sql的执行过程
11.innodb和myisam的区别
12.介绍一下乐观锁和悲观锁
13.介绍一下mysql的锁
14.mysql如何加锁
16.死锁的条件是什么?
17.并发事务使用for update加锁是否会出现死锁的现象?
18.50亿个数据去重怎么做?
19.50亿个数据排序怎么做?
20.反问
拼多多:
一面
1.自我介绍
2.有没有读研的打算
3.有没有参加学校什么实验室或者基地之类的?
4.有没有看过Java相关的书籍
5.平时有用过线程池吗?怎么使用的?
6.Java常见的线程池有哪些?
7.介绍一下常见的阻塞队列
8.接口和抽象类有什么区别?
9.多态怎么实现的?
10.对象是怎么生成的?常量存储在哪?
11.聊聊gc算法
12.介绍一下synchronized
13.聊项目
14.有没有看过设计模式相关的书籍
15.手写设计模式,策略,模板
16.有没有看过redis相关的书籍(我答没有,然后就没问redis了)
17.聊项目
18.算法:最长重复子串
19.反问
二面
1.自我介绍
2.问项目:
(1) 代码隔离怎么做的?docker为什么能实现代码隔离?
(2) 雪花算法原理?还了解哪些分布式id生成算法?
(3) 怎么建索引的?
(4) rocketmq如何保证消费顺序?
(5) rocketmq的消费模式有哪些?
3.mysql join如何使用?
4.一条select * from table where xx的执行流程?
5.语法树长什么样?(没听懂是不是问这个?唉应该问一下的)
6.redis是如何接收和处理命令的?主要问序列化方式、然后问用过哪些序列化方式(protobuf)以及优缺点、dubbo序列化方式
7.如何序列化一个map
8.为什么要有线程池?为什么要有内存池?
9.都说进程切换代价比线程切换代价大为什么?进程切换需要切换什么?
10.concurrenthashmap和hashmap的区别?
11.hashmap时间复杂度?什么时候链表会变成红黑树?
12.hashmap的hash过程?如果让你实现一个hash算法你会怎么做?
13.hash冲突不可避免我们应该怎么减少hash冲突?
14.为什么要有JVM?
15.算法:实现一个BigInteger类,它能完成大整数加法、大整数乘法、大整数赋值、大整数比较
16.反问:感觉面试官已经不耐烦了,匆匆回答结束。
三面
1.自我介绍
2.能实习多久?
3.有没有读研的打算?为什么不读研?
4.目前面了哪些公司?为什么选择pdd?
5.对pdd的工作强度了解吗?你认为pdd为什么是这个强度?
6.写一道算法:大浮点数相减
7.说一说大学期间最有挑战的一件事
8.讲一下大学期间最能体现你技术亮点的一件事
9.反问
HR面
1.自我介绍
2.能来实习多久?base地点有要求吗?
3.面了哪些公司?为什么选择pdd?
4.对pdd了解多少?
5.有没有读研的打算?为什么不读研?
6.有没有女朋友?
7.了解pdd工作强度吗?如何看待pdd这样的工作强度?
8.大学成绩
9.如何学习后端的?
10.介绍一下项目中最有挑战最能体现你团队协作的点
11.未来校招期望薪资是多少?
12.反问
美团:
基础研发平台-信息安全部-一面
1.介绍自己
2.介绍一下登录流程(从前端到后端)
3.详细说一下qq一键登录的流程,具体到交互了些什么参数?
4.jwt和session、cookie的区别
5.jwt的缺点
6.websocket连接的建立过程,websocket用的基于tomcat的还是netty的?tomcat底层
7.拷打项目(为什么要实现心跳检测,你的websocket服务在集群模式下是否会出问题等)
8.https项目中怎么配置的,具体到参数(晕)
9.介绍一下mysql的日志文件
10.如何保证redis的高可用
11.分片集群了解吗?介绍一下
12.分片集群的机器数配置???有点忘了当时问的是什么了,没太明白
13.redis数据类型,zset底层结构,zset能存多少数据
14.float、double浮点计算为什么不准确?应该用Java的什么类
15.介绍一下线程池的原理,项目中是怎么用的?参数怎么设置?
16.继续拷打项目
17.算法:最长上升子序列 (不知道为什么当时系统跑个测试样例都超时,事后去oj平台测试AC了)
18.反问
优选事业部-研发部-一面
1.自我介绍
2.介绍一下单点登录
3.WebSocket是怎么建立的?
5.介绍一下生产者消费者模式
6.索引创建的原则?索引什么时候失效?
7.介绍一下雪花算法,雪花算法有什么缺点?还了解哪些分布式ID生成的算法?
8.介绍一下限流逻辑,如果redis挂了怎么办?有考虑过熔断降级吗?
9.介绍一下你的视频上传逻辑
10.RocketMQ如何保证数据不丢失?
11.介绍一下你的点赞逻辑
12.你是如何使用RocketMQ去进行削峰的?
13.Java是如何解决并发安全问题的?
14.介绍一下悲观锁和乐观锁的区别,以及在Java中的应用
15.介绍一下Bean的生命周期
16.介绍一下策略模式
17.bfs变种,实现一个蛇形遍历,第一层从左到右输出,第二层从右到左输出,第三层第四层等以此类推。
18.平常怎么学习一个新技术的?
19.生活中有没有什么常用的优势的东西然后怎么固化它什么之类的,这个太抽象了没怎么听懂
20.反问:部门是做什么的?实习生来了会做什么?
#来聊聊你目前的求职进展##我的求职思考##我的失利项目复盘##我的成功项目解析##牛客在线求职答疑中心#