引用的大神的,算是大家都看一看了
1.c++的static关键字的作用(我从elf结构,链接过程来回答)
2.内联函数跟普通函数区别(从反汇编角度来回答)
3.select跟epoll的区别(epoll内核源码看过,从内核实现角度回答,所以回答的不错),
small插曲:对于很多博客说epoll使用了共享内存,我说完全错误的,然后就扯到共享内存的内核实现(基于tmpfs,为何2个进程映射同一个文件会映射到同一片物理内存,根本机制是page cache)
4.STL中的迭代器失效问题
5.指针,引用区别(反汇编分析,其实汇编指令实现都一样,可以把引用看做编译器管理的指针,语法糖)
6.Linux相关cpu内存网络相关指令
7.父子进程fork时,打开的文件的偏移量是否是相同的(从内核角度看,父子进程fork会将file文件复制一份,所以肯定会的)
8.Linux虚拟地址空间(3G以上内核,因为进程创建时,内核的页表全部拷贝到进程第768页目录项以上的,3G以下则是代码段(.init节,.text节,.rodata节),数据段(.data节,.bss节),堆(brk指针),栈从3G往下)
9.【计算机网络】只问了time_wait的危害,三次握手,四次断开
10.c++多态的机制实现(虚函数表,看过深度探索c++对象模型的都会的)
11.vector跟list区别,还有map的底层实现(红黑树)
12.extern关键字
1.一个数组传递到函数,蜕变成指针,求字节数
2.定义在全局的对象,定义在堆中对象,定义在静态局部变量对象,定义在栈中的对象,析构函数的析构顺序(从函数汇编角度看待,非常容易这道题)
3.new int[10]跟new int[10]()区别
4.epoll的多选题.....正确答案只有一个...
5.让手写代码,求二叉树的翻转(镜像问题),刚好我在刷题的时候,刷过,还给女朋友讲过这道题,自己用了非递归队列实现,也用了递归实现,面试官觉得还行,就看了看我简历.
6.问到epoll跟select实现区别,
从linux内核源码分析epoll的实现。
epoll的ET模式时,如果数据只读了一半,也就是缓冲区的数据只读了一点,然后又来新事件了..怎么办.
7.红黑树,普通二叉树,AVL树,完全二叉树的区别(很简单,数据结构书都有)
8.编写c语言程序判断该大小端
9: linux内核解决惊群问题
10.hash碰撞,Trie树
11.map /set容器的实现原理(红黑树知识+STL容器内部原理)
Q:熟悉shell么..
A:不怎么熟悉
Q:说说tcp/udp区别,
基于udp如何实现可靠传输说了一遍(网上有教程),然后udp啥一般用于视频传输,丢包几乎不影响,tcp有拥塞避免,流量控制,慢启动,快速回复算法,什么的都说了一通
Linux内核的内存管理机制,就把Linux内核的物理内存管理(numa,uma架构,ZONE,PAGE,伙伴算法,SLAB机制,冷热页缓冲机制基于LRU,OOM内存溢出机制,struct page跟物理内存的映射,page cache,还有swap分区),
虚拟内存管理,高端映射,(进程pcb中的mm_struct结构指向整个进程的虚拟内存空间,vm_area_struct结构.堆栈,数据段,代码段什么的,malloc实现机制,mmap映射)
不想说面试官全程对我微笑,莫名心虚……
然后聊到如何防止内存泄漏,把c++11的智能指针还有auto_ptr的实现说了一遍),
-----------------HR面---------------------
下午hr面试,躺在床上睡觉,被hr的电话吵醒来,问我方便么
(腾讯非常人性化,很多人hr面都是现场面试,而西安的hr要明天才到西安,然后我在外地,所以直接给我电话面试)
问哪里人什么的..有木有女朋友,什么是否是独生子.其实就是闲聊........
hr问了10多分钟就挂了电话~
c/c++部分:
C++ Primer(入门必备(但并不是0基础可以看,0基础看C++ Primer Plus)
Effective C++,More Effective C++(提升c++的编程技巧,面试官很多都从这书里问)
深度探索c++对象模型(了解c++的底层实现机制,不然面试官问了多态的实现,你不会就挂了)
STL部门:C++标准库(侯捷)(介绍STL六大组件的应用)
STL源码剖析(STL的源码,不过自己只看了一半而已)
范型编程与STL(绝版书,不过讲解traits时非常的nice)
操作系统概念部分 Linux鸟哥私房菜(linux相关命令操作,不过自己推荐the linux command line这电子书更棒)
《轻松学用linux shell编程》(shell学习相关的)
现代操作系统(非常经典的操作系统书,不要看国内的操作系统书)
深入理解计算机系统(CSAPP)(豆瓣高达9.0以上的书,含金量就不多说了,其中的第7章有关elf看懂了,那就不必看那本程序员的自我修养了)
操作系统内核部分:
操作系统真象还原(教你怎么从0实现一个kernel,看完对操作系统绝对有一个飞一般的认识,另外作者钢哥非常棒
,我经常骚扰他问内核问题,都会耐心回答)
Linux内核源代码情景分析(毛德操所写的2.4内核源码,感觉非常有深度,自己囫囵吞枣的看完,细节部门略过了)
Linux内核设计与实现(一本比较薄的2.6内核剖析书,很容易看懂其内幕)
深入分析Linux内核源代码(一本绝版书,陈莉君教授所写的2.4内核源代码,配合Linux内核源代码情景分析使用,效果更佳)
深入理解Linux虚拟内存管理(这本才刚开始看,没看多久)
Linux环境编程:从应用到内核(一本非常棒的新书,讲解apue的api背后的内核实现,作者我也加了,内核功底非常深厚)