#软件开发笔面经#
投的finestar计划,笔试编程ak了,过了半个月约一面。面试官人很好,从他身上学了一点知识
介绍xv6项目,讲一下文件系统,系统调用,中断
用户态和内核态;
读文件在什么态(read系统调用应该在内核态,我昏头了说错了)
处理异常呢
详细讲一下虚函数表,虚函数表内找函数指针的过程?
volatile关键字,应用(我提到了上锁单例,但是比划半天之后volatile的具体作用说错了,面试官纠正了一下)
内存对齐
进程间通信
命名管道的实现(我随口说创建新文件,事后一查发现好像还真是)
快排和堆排序时间复杂度,最坏情况(堆排序最坏情况不知道)
map和unordered_map的内部实现,插入查询时间复杂度
红黑树比avl树的优势,红黑树左右子树差(红黑树的黑高度,不会)
数据库事务隔离级别
b树b+树
它们单次查询哪个效率高(我说成b树了),范围查询呢,空间利用
设计模式,装饰器模式会吗(不会)
场景题和口撕:
1百万数据找前100大(维护小根堆,nlogk)
一亿数据,内存只能放一百万个,怎么排序(先分块排序,再归并排序)
rand7实现rand5,rand5实现rand7;
最大连续子数组和;
反问:请他介绍了一下具体业务