字节提前批三面面经
一面
在浏览器输入一个网址的时候发生了什么?
TCP 怎么保证可靠传输?
简述 HTTPS 的加密与认证过程
对称加密与非对称加密区别
DNS 查询服务器的基本流程是什么?
Cookie 和 Session 的关系和区别是什么?
MySQL 为什么使用 B+ 树来作索引,对比 B 树它的优点和缺点是什么?
MySQL 什么时候适合建立索引,什么时候不适合
进程间有哪些通信方式?
管道是怎么样工作的?
有很多文件,有多个缓存服务器。要求设计一个方案,能够应对以下场景:
1.大量的查询请求
2.如果有一个服务器宕机,其他服务器能够接管其查询任务。
3.可以往里面增加服务器。
我的回答:根据哈希分为多段,每个服务器处理其中若干段。服务器宕机,就将它所管理的段分给其他服务器。
增加服务器,就从其他服务器抽一些段出来给新服务器管理。
手撕代码:
求一个数的立方根?(我慌了,平方根好搞,立方根不会啊,于是用二分解决的,稍有点low,但是面试官说可以了。)
二面
了解java线程池吗?基本原理是怎么样的
java的volatile关键字
mysql什么情况下能用到索引,什么情况下不能
mysql怎么看用没有用索引(mysql 的explain 命令)
mysql隔离级别
什么是幻读,mysql如何避免幻读
mysql主键索引和其他索引的区别
mysql主键索引和数据是放在一起的吗
mysql索引是B+树,B+树的叶子节点存放的是什么
进程里面直接使用的地址是真实的内存中的地址吗?为什么这么设计?
交换区作用?
页表结构?
页表大小?
如果有几十亿个电话号码,每个号码11位,如何找到其中的重复的号码?
(字典树或bitmap)
编程题:
两个线程轮流打印1 2 3 4 5 6 7 8 9
用数组做一个队列。
答得很不好。好多个问题是面试官反复引导才回答出来的。估计凉了。
三面
意外地接到hr电话,二面给过了,哈哈。
三面题:
C语言代码转换成exe的过程
linux时如何运行一个exe的
函数调用时的栈内数据变化,返回值是如何传递的
python垃圾回收
编程题:
找到一个有向图中所有的环。
三面问的很深很底层。中间有些地方我答错了,比如返回值是如何传递的我一直以为是栈,其实不是(当年没有认真学习的锅)。不过最后hr说通过了,会发放offer。