C++
什么是多态?
多态可以用来做什么?
虚函数的实现机制?一个空的对象(包含虚函数的类的对象)占几个字节?(32位和64位机器分别是多少?)
什么是抽象类?
抽象类的作用是什么?
抽象类(abstract class)的主要目的是为它的子类定义公共接口。一个抽象类将它的部分或全部操作的实现延迟到子类中,因此,一个抽象类不能被实例化。(——引自《设计模式:可复用面向对象软件的基础》P11)
static关键词起什么作用?
new和malloc的区别?
C++中有哪几种数据存储区?
堆区存放什么?栈区存放什么?
什么是栈溢出?哪些情况下比较容易出现栈溢出?
“#include”后面跟引号与尖括号的区别?
你了解哪些编译器?
G++:如何编译一个文件?
gdb?
STL
vector内存管理方式?
list执行erase之后迭代器指向谁?
map和hash_map的内部实现原理?哪个效率高?
解决哈希冲突有哪些方法?
- 开放定址法
(1). 线性探测法
(2). 平方探测法
(3). 随机探测法 - 链地址法
- 公共溢出法
什么情况下适合用map,什么情况下适合用hash_map?
hash_map的不稳定性表现在哪?
当hash_map的大小合适,并且计算算法合适的情况下,hash表的算法复杂度为O(1)的,但是这是理想的情况下的,如果hash表的关键字计算与表位置存在冲突,那么最坏的复杂度为O(n)。 map在一次查找中,你可以断定它最坏的情况下其复杂度不会超过O(log2N)。而hash表就不一样,是O(1),还是O(N),或者在其之间,你并不能把握。
数据结构
算法
主要以算法题的形式出现。
多线程编程
多线程编程需要注意哪些问题?
操作系统
sleep与wait的区别
http://www.cnblogs.com/plmnko/archive/2010/10/15/1851854.html
编译原理
动态编译与静态编译的区别?
http://blog.csdn.net/wuan584974722/article/details/7953213
计算机网络
TCP与UDP的区别?
TCP建立连接需要经过几次握手?过程是怎样的?释放连接需要经过几次挥手?过程是怎样的?
TCP中的timewait状态是怎么产生的?
为什么TCP叫做数据的“流”传输,而UDP叫做“报文”的传输?
GET和POST的区别?
用什么命令查看域名对应的IP地址?
nslookup