个人基本情况
双非大学本科毕业生,计算机专业,在校成绩偏上,之前的实习项目的成绩也都还不错,所以简历相比同学历的人来说还是算出彩的,这次秋招准备得挺早的,但一开始并不顺利,腾讯和网易打头阵的两家公司都被直接刷了,不过好在自己心态好,最终拿下了字节跳动和vivo的offer,现分享一下自己的面经和真题。
vivo(后台开发):笔试+一面+HR面
vivo一面(现场面40min)
Static变量和方法有什么特点,能不能访问非静态成员,说一说为什么?
Static方法能不能重写,为什么?
抽象类和接口的成员变量有什么差别?
HashSet怎么实现的?
HashMap怎么遍历的?
线性结构有哪些,二叉树属于吗?
二叉树最多有多少个节点?第k层有多少个节点?
冒泡排序怎么实现?怎么优化?两层循环各是干什么的?
多线程中wait和sleep方法的区别
MVC模式的实现
Hibernate怎么和上层交互,用过哪些数据库?你了解多少?
手写sql:查询从6.1开始到现在每天的评论数量;评论大于1000的数量(注意日期函数)
说说你之前做的项目
项目方法是自己提出来的还是有前人做过,有什么不同,改进在哪里?
vivoHR面(20min)
自我介绍
有什么兴趣?
面试了哪些公司,拿到了哪些offer
为什么想要来vivo?
你在之前的项目里,有没有遇到什么困难?最后怎么解决的?
说说自己的优缺点。
期望薪资
......
你还有什么想问的吗?
字节跳动(西瓜视频):笔试+三面+HR面
字节跳动一面(45min)
自我介绍
问之前做的项目,如何进行设计的。比方说你用了 Redis,为什么要用 Redis?
Redis 为什么快?
Redis 有哪些数据结构,zset 底层结构?为什么要有跳跃表和字典两个?
你是怎么解决超卖少卖的?如果我不在缓存中做,非要用数据库来控制超卖少卖呢?
计算机网络的三次握手,四次挥手,TIMEWAIT 状态?如何尽量处理 TIMEWAIT 过多?
写道算法题,数组的逆序数。要求能运行!
写个 LRU。
写个最长回文序列:回文子序列,因为是不连续的肯定是不能直接枚举,那么利用动态规划。我们知道对于任意字符串,如果头尾字符相同,那么字符串的最长子序列等于去掉首尾的字符串的最长子序列加上首尾;如果首尾字符不同,则最长子序列等于去掉头的字符串的最长子序列和去掉尾的字符串的最长子序列的较大者,由此得到转移方程。
限流的算法?为什么用令牌桶?令牌桶的限流有什么缺点?
了解分布式消息吗?
Kafka怎么保证信息有序?
字节跳动二面(1h)
自我介绍
网络分层结构
TCP为什么在网络环境不好的时候慢
滑动窗口机制
Google的BBR算法
抽象类和接口的区别
数据结构底层 list map arraylist hashmap
堆 栈 方法区的区别
Hibernate的session
数据库底层
说项目
项目用到哪些设计模式 有帮助么
算法:6个或8个苹果装一个袋子,最少袋子数量 DP背包问题
字节跳动三面(50min)
惯例自我介绍
先写个题,矩阵中的最长递增路径,给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 利用记忆化搜索搞定。
让你系统的设计一个高并发的架构,你会从哪几个方面考虑?
再写一个判断一个二叉树是另一个二叉树的子树?
算法:链表k段反转
场景题1:很大地图 每个npc移动 数据结构设计 怎么找周围的npc 算法 以圆半径怎么找 注意玩家是在移动
场景题2:游戏排行榜 弹幕的数据结构设计 考虑哪些因素 怎么存数据库里
场景题3:前100的玩家怎么找 说了分治 分治怎么做 分布式的话怎么一致
字节跳动HR面(20min)
自我介绍
自己的优缺点
学习过程中遇到的一些问题如何解决的
性格上的优缺点
家庭情况
期望薪资
为什么想来北京
总结
对于面试,首先一定要有良好的心态,之前面试腾讯和网易凉凉之后,并没有一点气馁,所以之后的面试并没有受到影响,发挥也很正常,也就能够揽下字节跳动和vivo两个offer,目前已经准备入职字节跳动了,希望自己一切顺利。
需要以上面试学习资料加下方V
来源:oschina
链接:https://my.oschina.net/u/4381303/blog/4663237