面试需要掌握的知识

来源:互联网 发布:怎么开网络博客 编辑:程序博客网 时间:2024/05/20 20:17

C++基础

在栈上为什么不能用变量做数组的长度,堆上可以吗?
基类和父类的构造析构函数调用,多态,结构体里的位域,求大小并且分析,我说windows下和linux下对位域有区别

数据库:

数据库分库分片,
项目中数据库的实现。
为什么要自己实现一个数据库。
数据库游标。

数据结构与算法:

快排:http://blog.csdn.net/hacker00011000/article/details/52176100

哈希表

红黑树实现,mmap内存映射,链表是实现的3个重要技术

反转二叉树

计算机网络

消息是怎样定义的,怎样区分不同的消息,怎么知道使用锁的。我给他说了epoll、线程池,Reactor模式
TCP没有边界限制,阻塞IO,非阻塞IO,epoll机制以及高效的关键
第二次握手之后可以发数据吗?我说可以,但是必须得把ACK子段 置位等还问了一些别的相关问题
用epoll的ET模式实现一个服务器框架 要求:
1、接受client连接建立,出错处理
2、处理client关闭连接以及出错
3、TCP边界问题,其实就是TCP粘包 写了3页的代码
UDP实现广播时会不会出现对方接受不到,可能是什么原因
UDP在同一个网段下可以实现广播吗?在同一个子网下为什么可以实现广播?怎样划分子网

操作系统

进程和线程的区别,这个感觉面试官都爱问诶,Linux2.6内核之前没有自己的内核级线程2.6之后的3种线程模型,多CPU运行,进程的PCB控制块,僵尸进程遗留PCB控制块在内存中等等
Linux的线程池,并发反应模式
内核和用户态相互拷贝数据图
gcc和g++区别
makefile,gdb调试,给我说了各种参数,ld,backtrace,等等7个
进程间通信方式,怎样实现在两个进程间互斥访问共享内存:http://www.cnblogs.com/my_life/articles/4538299.html

黑客

网站SQL注入,缓冲区溢出攻击,DNS劫持,DDOS攻击,ARP欺骗以及原理,嗅探、肉鸡、网页挂马等等

汇编定层

问我函数调用压栈,我把函数的调用过程画了出来,因为之前看过汇编,从右向左传参,调用call指令压入返回地址,保护各个寄存器等
this指针保存在哪个寄存器中,我说ecx寄存器
C++调用约定和stdcall调用约定的区别,以及弹栈的时候的区别:C和C++是_cdecl调用约定,由调用者把参数弹出栈。对于传送参数的内存栈是由调用者来维护,而stdcall是由被调者自己平衡栈帧
当前指令保存在哪个寄存器
C++类中线程callback函数怎么使用自己类的成员

设计模式

单例模式,加锁,两重判空

原创粉丝点击