字节跳动今日头条后端一二三面面经
由于一二三面中间各隔了一个中秋假期以及一个国庆假期,所以面试时间拉得很长,但是每一轮面试给结果的速度都很快。
一面:算法题:LC原题,二叉树层次遍历ii,和最大正方形。BTW:codetop挺有用的,至少我在面头条的时候遇到的算法题5道有3道是codetop上显示的高频题。
一面面试官似乎不太会java,所以没问JVM。
SQL:left join,right join,inner join的区别。索引的作用。最左匹配原则。给了一个select语句问能不能命中索引。什么是索引覆盖,回表。
计网:TCP如何保证可靠传输。
OS:内核态和用户态,什么时候发生切换。什么是死锁。
一面在中秋假期前了,所以能记得的就这些。
二面:算法题:非LC原题。一道是在字符矩阵中找是否存在单词,BFS。一道是一个数组的微信跳一跳,以及附加条件的升级版。普通版贪心即可,升级版需要回溯或者动归。动归没写出来。
计网:HTTP和HTTPS的区别。对称加密和非对称加密。CA证书如何验证。中间人攻击。TIME-WAIT状态的作用。
SQL:索引的数据结构。为什么用B+树不用红黑树,为什么不用AVL树,红黑树和AVL树哪个效率更高。SQL是如何保证隔离级别的。MVCC相关。
OS:Linux父进程fork了子进程,子进程申请大量内存后崩溃,会造成内存泄漏吗(没答上来)。
JVM:JVM内存相关。volatile关键字,synchronized关键字,死锁的四个条件。Hashmap底层实现,为什么用红黑树。currentHashmap底层实现。AtomicInteger底层实现。
三面:算法题:LC原题,LRU缓存结构。面试结束的时候面试官问我是不是写过,我说是,面试官说我挺诚实的哈哈哈哈。
计网:TCP为什么要三次握手,为什么要四次挥手。如果要用UDP实现类似TCP的可靠传输需要实现哪些功能,用这种方式实现的UDP和TCP相比哪个效率更高?(不知道)。TCP的backlog参数(没答上来)。sync攻击(没反应过来是什么东西,其实就是ddos)。
OS:虚拟内存。操作系统是如何去运行一个代码的二进制文件的(没太明白面试官想问什么,最后讲了一下java一个类的全部生命周期。)
智力题:两个人拿书,每人只能拿1-5本,一共100本,先手如何保证胜利。经典问题属于是。
二三面还问了简历上的论文项目,光讲论文就讲了20-30分钟,中间会问一些比较笼统的问题,还会问你在这个项目中遇到最大的问题是什么,是如何解决的etc。
一二三面加起来面了三个半小时,是我面过时间最长的一个公司了。三面结束2小时后就接到了约hr面的电话。
祝各位同学早日OC!!
#字节跳动##面试题目#