C++面试题目自己总结看

引用的大神的,算是大家都看一看了

1.c++static关键字的作用(我从elf结构,链接过程来回答)

2.内联函数跟普通函数区别(从反汇编角度来回答)

3.selectepoll的区别(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.vectorlist区别,还有map的底层实现(红黑树)

12.extern关键字

 

 

1.一个数组传递到函数,蜕变成指针,求字节数

2.定义在全局的对象,定义在堆中对象,定义在静态局部变量对象,定义在栈中的对象,析构函数的析构顺序(从函数汇编角度看待,非常容易这道题)

3.new int[10]new int[10]()区别

4.epoll的多选题.....正确答案只有一个...

5.让手写代码,求二叉树的翻转(镜像问题),刚好我在刷题的时候,刷过,还给女朋友讲过这道题,自己用了非递归队列实现,也用了递归实现,面试官觉得还行,就看了看我简历.

6.问到epollselect实现区别,


linux内核源码分析epoll的实现


epollET模式时,如果数据只读了一半,也就是缓冲区的数据只读了一点,然后又来新事件了..怎么办.


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环境编程:从应用到内核(一本非常棒的新书,讲解apueapi背后的内核实现,作者我也加了,内核功底非常深厚)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值