头条提前批面经(已拿offer)
7.31收到意向书,感谢牛客!
7.14 一面(1h20min)
自我介绍。
java:
-
JVM 虚拟机运行时数据区域?
-
GC算法,垃圾回收器(主要以 CMS 和 G1 展开 + 阐明分代思想)。
-
介绍一下集合里的 hashmap?1.7和1.8区别?hashmap 的扩容机制?如何处理哈希碰撞?
-
Hashmap 和 ConcurrentHashmap 的区别?ConcurrentHashmap 的线程安全怎么实现的,1.7和1.8有什么区别?为什么要这样升级锁机制?
计算机网络:
-
简单介绍一下 tcp 协议和 ip 协议。
-
tcp 的可靠性是如何保证的?有哪些因素会影响 tcp 的传输速率?tcp 的流量控制怎么实现?关于 tcp 的拥塞控制和流量控制能具体展开说吗?
-
tcp 的握手为什么是三次不是两次?四次?
-
ip 层的主要作用是什么?ip 层从发出到接收的过程是怎样的?目标主机接收到之后怎么知道这是发给自己的?通过 ip 协议拿到之后怎么找到具体的 mac 地址( arp 和 rarp )?
数据库:
-
MySQL 数据库的索引有哪些?
-
B+ 树了解吗,有哪些特点?为什么用 B+ 树而不用其他树?这个和磁盘预读有什么关系?
算法:
-
数组里找两数之和(要求调到最优时间复杂度)。剑指原题。
-
输入一个正整数 N,返回 N 个 '(' 和 N 个 ')' 的所有可能情况。如N=2,输出)((),(())等。
-
只返回上题中括号合法的情况,比如 (()),()() 即为合法。
7.18 二面(1h10min)
自我介绍。
计算机网络:
-
输入一个 url 回车到获得响应,经过哪些层,分别涉及什么协议?
-
tcp 和 udp 的区别?
-
tcp 协议里的流量控制和拥塞控制的区别是什么?
-
http 和 https 的区别?
-
https 的加密过程( SSL 四次握手)?对称加密和非对称加密有什么区别?
知识面考察:
-
md5 是加密算法吗?它是怎么解密的?(这里是陷阱,md5 是单向的,不存在解密,某种程度上应该不算一种加密算法。)你刚刚提到彩虹表,你能告诉我彩虹表是怎么破解 md5 的吗?
操作系统:
-
Linux 系统里一个文件在被使用的时候可以被删除吗?
-
乐观锁和悲观锁是什么?现在让你实现一个乐观锁说说思路?
数据库:
-
Table 表中有字段 id, name, sex, age, city,求男性平均年龄最大的城市?先说说如何建立索引?写一下这个 sql。
select city from Table where sex='男' group by city order by avg(age) desc limit 1;
算法:
-
返回数组中不存在的最小正整数,要求时间 O(n) 空间 O(1)。如 [-1, 0, 5, 2] 返回 1,[7, 8, 9, 10] 返回1,[0, 1, 2, 3] 返回4。
反问环节。
7.25 三面 (1h10min)
自我介绍。
项目 + redis 场景 (针对我的秒杀系统展开狂攻,并且延伸一些分布式问题。)
算法:
-
在 1 ~ 9 里不重复地选择 k 个数,返回所有相加等于 x 的情况。(leetcode 216)
反问环节。