【秋招面经分享】字节八面终上岸

字节面试贯穿了自己的整个秋招。最终相信, 绝大数情况下,坚持一定可以胜利!

一面

  • 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内存模型
  • 算法题
  • 升序数组找绝对值最小的那个值

最后,有需要面试学习资料的可以在这里领取:戳这里,戳这里,暗号:CSDN

 

 

以上就是本文的全部内容,希望对大家有所帮助,祝大家早日升职加薪迎娶白富美走上人生巅峰!

资料领取:戳这里,戳这里,暗号:CSDN

喜欢文章请点个关注,三连~~

在这里插入图片描述