【秋招】【字节】八面终上岸,面经分享
中间有两面没总结,遗憾,字节面试贯穿了自己的整个秋招。最终相信,绝大数情况下,坚持一定可以胜利!
- 一面
- 1. Session存在哪里,怎么把session_id返回个客户端?
- 2. Redis的数据结构,它有哪些复杂数据结构?
- 3. Http与Https的区别,详细描述加密非对称加密的过程
- 4. 线程与进程的区别?
- 5. IO多路复用
- 6. redis服务端是多进程还是单进程,多线程还是单线程
- 7. top loadaverage怎么计算的
- 8. hashmap解决冲突的方式
- 9. 数据库的事务,什么是幻读?事务是怎么实现的
- 10. linux的命令,如何查看服务器负载?
- 11. 算法题
一个长度为n的数组,元素在1到n之间,找到一个重复的元素,空间复杂度越低越好
- 二面
- 如何查看端口占用情况
- 如何查看远程服务器某一个端口被占用
- 可以ping通,当时客户端连接不上服务端,什么原因
- 算法题
1. 最长不重复子串;
2. 找比当前数大的下一个数,如1243,结果是1324;
- 数学题
1. 有三个盒子,其中一个有奖品,参与者选中一个后,主持人打开另一个盒子没有奖品,问参与者是否换盒子,换与不换的中奖概率是? - 三面
- 操作系统包括哪些部分
- 如何进行内存分配
- 进程切换发生哪些事情
- fork函数
- 项目:分布式如何扩容缩容
- 算法题
1. 给定一个升序数组,一个target值,找比target小的最大数字(类似于升序插入排序的一个步骤)
int begin = 0;
int end = arr.length - 1;
int mid = 0;
while(begin < end){
mid = begin + ((end - begin) >> 1);
if(arr[mid] < target)
begin = mid + 1;
else
end = mid;
}
//end = mid 肯定会更新,但是begin = mid可能就不会更新,必须要begin = mid + 1,推进区间的收缩
- 一面
- B树和B+树区别
- 三次握手,四次挥手
- 为什么要time-wait
- java多线程同步
- 项目:如何避免超卖
- redis主从同步
- 操作系统内存为何要分页
- B+树叶子满了,要添加新值怎么办
- 5G数据,1G内存如何实现排序
- 12个球,一个质量不一样,最多称三次,如何称
- rand(1, 5)实现rand(1, 7)
- 给定一个target,在升序数组中查找target第一次出现的下标和最后一次出现的下标,找不到用-1代替
- 二面
- Spring@resource与 @autowired
- 操作系统加锁的原理(面试官提示是cpu消息总线)
- 算法:
- 链表找环
- O时间取出栈最小元素
- 非负整数字符串删除k个元素,使得结果最小
- 三面
- 赛马问题
- volatile关键字
- 单例
- Spring AOP
- 注解的原理
- OOM的情况
- Jvm内存模型
- 算法题
- 升序数组找绝对值最小的那个值
最后问一下,字节的GIP团队如何,求大佬们透露!
#字节跳动##面经##校招##Java工程师#