阿里一面:
阿里面试完问了相关的问题:
1.项目的介绍
2.智力题
给你一个数n,能否对它开方,不能用乘法
3.计算机基础知识
操作系统中,给进程分配的管理方式是怎么样的,给你一个4M的内存,怎么分配?
操作系统中,内存的页级和段级管理方式,两者的区别
操作系统中,如果给你一个二级页表,那么这个二级页表,可以减少多少的内存,怎么算?
内存管理知识基本都考到了
网络拥塞有了解过吗,分为哪几个部分
滑动窗口是怎么样控制流量的
linux系统,linux内核,IO栈,IO从上到下的流程,IO请求可以合并吗?
4.还学过什么?
redis,缓存算法,一致性hash
5.编程
模拟实现LRU算法
————————————————————————————————————————————
头条一面:
1.算法编程:给你个树,辨别是不是一个平衡二叉树
代码:这个问题很明显用到之前问题一的解决方法,既然知道每个节点的额深度,那么判断每一个节点的子节点的深度不超过1,就是平衡二叉树
缺点:但是这种方法,显然求深度的遍历到叶子节点,比较的时候每次都要求深度,遍历叶子节点,效率不高,这种时候就需要从下到上的方法。时间复杂度O(n2)
判断,避免不要的重复遍历
优化:思想就是用后序遍历遍历一个节点,每次遍历节点的时候就判断左右子树的深度值,直到最后的根节点即可。后序遍历就是左右根,从叶子节点开始判断子树是不是平衡树,是的话返回true,在依次向上遍历,直到根节点
2.项目,
3.网络知识
端口号属于哪一层,udp和tcp可以重用端口号吗,udp和tcp的区别
TCP 和 UDP 的端口是不冲突的,各收各的。 而且很多标准服务都是 TCP 和 UDP 在相同的端口提供相同的服务。
4.操作系统,
swap区可以用ssd来做吗
什么时候会用swap区,为什么要用swap区
虚拟内存是什么意思,是如何实现的
进程之间是如何隔离的
二面:
编程:
3sum的问题
操作系统知识:
进程和线程的区别,
为什么要有进程,线程
线程之间的同步方法
进程之间的通信方法
你常用的是哪种通信,你用的socket是用的哪种socket
网络:
讲一下网络的四次挥手把
第三次挥手的2MSL时间是怎么样的,为什么要设置这个时间,有什么作用
c++知识
讲一下智能指针把,你是如何用智能指针的
map和hashmap的区别
const和define的区别
linux脚本:编程,用命令行完成多列数据的检索、
用过哪些命令,top.iostat,fd
有用过free命令吗(free命令原来是和swap交换分区相关的)
数据库知识
你还有什么想问我的。
三面:
编程:
给你一个N位数,求N位数隔位不相邻的集合
————————————————————————————————————————————
腾讯一面:
1.项目中LRU链表和树的数据结构
2.二叉树的搜索,递归和非递归
3.找出连续递增1的数列中出现重复的数字
华为一面:
1、介绍下项目中iops,吞吐量,你们是如何测的?
2、qps和你讲的iops是一个特性吗?
3、仿真器的架构是如何设计的?
4、缓存是如何做的?
5、cpu的架构了解吗?
6、网络中三次握手你了解吗?
7、操作系统中的僵尸进程你了解吗?
8、linux的一些操作命令有了解吗?
9、对于数据库来说,你认为如何和存储相结合?
华为二面:
1、人生
2、如何看待华为云
3、华为云和ssd怎么结合
4、三维堆叠闪存的发展
5、目前来说有哪些限制
6、三维堆叠闪存的写入速度和二维相比怎么样
7、对云存储你如何看
8、工作地点?
9、爱好