大家如果有收到面试,要提前做好相关准备,珍惜每次的面试机会,祝愿大家都能找到心仪的工作!
一面:
1 写一个题,找一个无序数组的中位数
2 写了个快排,然后让我找到无序数组第k大的一个数,我说先排序再找,实际上可以用快排的partition函数。
3 快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,建堆的复杂度是多少,nlgn。
4 操作系统了解么,Linux和windows
5 说说Linux的磁盘管理
6 Linux有哪些进程通信方式,五大件
7 Linux的共享内存如何实现,
8 共享内存实现的具体步骤,我说没用过
9 socket网络编程,说一下TCP的三次握手和四次挥手
10 跳过网络,问了项目的一些东西
11 如何把docker讲的很清楚
12 cgroup在linux的具体实现,
13 多线程用过哪些,chm和countdownlatch
二面:
1 自我介绍
2 Java的集合类哪些是线程安全
3 分别说说这些集合类,hashmap怎么实现的
4 MySQL索引的实现,innodb的索引,b 树索引是怎么实现的,为什么用b 树做索引节点,一个节点存了多少数据,怎么规定大小,与磁盘页对应。
5 MySQL的事务隔离级别,分别解决什么问题。
6 Redis了解么,如果Redis有1亿个key,使用keys命令是否会影响线上服务,我说会,因为是单线程模型,可以部署多个节点。