三面字节跳动,我爆肝一周深刻复盘了我的面试经验,总结出这套万字面经长文!

前言

之前面了财经,说给大家写面经的,一直忘了,现在补上。

6.16一面:

  • 项目
  • 基础知识
  • 计算机网络
  • 能说一下tcp断开连接的过程吗
  • 一方要断开连接时发送fin=1的包,另一方同意后回复ACK。此后 连接单方面断开,这一方无法再发送数据,另一方还可以。直到另一方发送断开连接的包,经过类似过程后连接最终断开。
  • 能说一下tcp拥塞控制的过程吗
  • 分为整个网络级别的cwnd和两端级别的rwnd。发送大小取两者最小值。rwnd由接收方的ack或者稍待确认更新。表示还能发多少数据。cwnd由发送方自己维护。初始化为1,每收到一个确认加一,即指数增长策略。当到达预设的阈值转为线性增长。出现超时时减半,分为慢启动和快恢复。慢启动时cwnd初始化为1,阈值变为一半,重复过程。快回复时cwnd等于减半后的阈值,并线性增长。
  • 了解过快重传吗?
  • 可以说一下为什么快重传是三次吗?
  • 这里问他要了个提示,说跟奇偶性有关。有会的同学解答下吗。
  • 数据库
  • 会sql语句吗?写一个sql。一张表,有学生ID,学生名字,所选课程名。查找选修了最多选修课数目的那一群学生的人数。用到distinct,group by,max函数。面试官人特好还提示说那个字段叫distinct
  • 了解数据库事务吗?
    ACID。
  • 说说你对隔离性的理解
  • 隔离性和并发性是冲突的。现实中往往牺牲一定的隔离性来保证并发性。根据隔离级别不同分为脏读,不可重复读,可重复读,幻读。(这里多嘴说了一句mysql应该是幻读,被当场打脸。其实应该是可重复读。可发散到mvcc,再联系到binlog和undoredolog)
  • 说说数据库索引的底层数据结构?
  • B+树
  • 和B树有什么区别?
  • 非叶节点、底层数组串联。(准确的说应该是底层双向 链表便于范围查找,这里他放了我一马)
  • 操作系统
  • 进程线程的区别是什么?
  • 进程定义
  • 资源分配:线程是CPU资源的最小单位。进程是内存等资源的最小单位。此外线程只保留有限的一些程序计数器和寄存器等私有资源,共享同一个进程的资源(所以也便于通信)。
  • 管理上
  • 进程创建线程、线程调度的开销。内核线程用户线程等。(这里可以发散到用户线程的起源和缺陷、还能发散到linux的lwp)
  • 算法
  • 单向 链表实现快排。
  • 快慢指针从左到右

6.18二面:

  • 项目:无
  • 知识:
  • 计算机网络
  • https加密过程
  • 答得零零碎碎,就记得个ssl和数字证书、对称加密非对称加密。给放过了
  • cookie和session的区别
  • cookie保存在 客户端,记录用户访问信息,如订单记录等。session没答出来
  • 数据库
  • ACID、隔离级别
  • 乐观锁、悲观锁
  • 系统通信的方法
  • 远程:socket
  • 主机内
  • 共享内存 、管道、收发消息
  • 算法
  • 二叉树,输入总和t,求出从根节点开始的某一条路径。这条路径上节点的和等于输入的总和t。思路是递归,记录到当前节点时的和。小于时继续,等于时返回。大于时表明这条路径行不通,中断。
  • 最后差两行代码死循环跑不出来。面试官说结束了结果几天内反馈。我说能不能再给几分钟然后写出来了。写出来后立马说准备三面hh。

三面

  • 气场很强的大佬。 项目背景和思路理解得飞快,毕设参考了一篇A会时还问了是哪个会议。
  • 项目:找个印象深的来说。说了毕设和一个nlp 项目
  • 知识
  • 把osi七层说了一遍。从物理层信道到传输层都细说了一遍。其实应该没必要说这么细。相当于缩小了面试官考察你其他方面知识的时间,最后成绩受 算法结果的影响就比较大。
  • 数据库的ACID、B和B+树、 redis数据库
  • 操作系统进程调度(在这里联系到了线程的lwp)
  • 说到了kafka
  • 算法
  • 关于反问
  • 任何了解部门的语言挑战都可以,这里可以聊一聊他们业务遇到的问题,如果有条件了解到的话。最好别表现太重的得失心。

我的面试经验汇总

由于平台限制,不能以图片的形式一一展示了!基础的东西就不进行过多的赘述,我们将会从面试必问的说起,基本上文档里面的内容都是打出面试必问的技术点和面试真题整理而成,大家拿到手后建议直接去把真题做一下,一边练手一边考证一下自己的技术水平,全部做完之后再去看面试题解析和技术点讲解,这样的学习效率是非常高的!
以上所有资料欢迎关注公肿号:前程有光,领取一线大厂Java面试题总结+各知识点学习思维导+一份300页pdf文档的Java核心知识点总结!
三面字节跳动,我爆肝一周深刻复盘了我的面试经验,总结出这套万字面经长文!_第1张图片

你可能感兴趣的:(面试专题,程序员,java,数据库,java,面试,emacs,字节跳动)