一面主要是针对项目来的,涉及里面的一些技术,一般是你用到啥(在面试里你说到啥),他就问啥。
但是某些方面的问题是不可避免的(一二面中均出现的)。
1.c++方向
1.1.虚函数
为什么要引入虚函数(虚函数的作用):实现多态 注:指向基类的指针在操作它的多态对象时,会依据对象的不同,调用相应的函数
防止多重继承 纯虚函数(怎么声明:=0)
1.2.struct和class的区别
1)字面上的区别(从定义角度) 2)成员权限上的区别 3)默认继承方式 4)class可用来定义模板参数 注意:c++中的struct中可以写方法,也可以继承
2.网络方向
2.1. tcp/udp
建立连接时三次握手:
:
断开连接时四次握手:(注意二三次都是sever端发送的:第一次ACK是确认收到,第二次FIN表示可以关闭了,中间的那段时间可能server端还有未传完的数据)
另外:tcp 与 udp 的区别
tcp | udp | |
是否连接 | 面向连接 | 面向非连接 |
是否可靠 | 可靠的 | 不可靠的 |
场合 | 传输大量数据 | 少量数据 |
速度 | 慢 | 快 |
我还被问到:怎么用udp实现tcp 封装一下udp? 或者从区别上考虑?
2.2.cookie和session
二者实现方式 应用情形
3.进程线程
3.1.基本概念
3.2多线程同步方式及其区别
3.3.Linux下进程间通信方式及其优缺点
3)报文队列(消息队列)
消息队列 是消息的链接表,包括:Posix消息队列、systemV消息队列。
有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息
消息克服了信号承载信息量少,管道只能承载无格式字节流及缓冲区大小受限等缺点
4)共享内存
使得多个进程可以访问同一块内存空间,是最快的可用ipc形式。
是针对其他通信机制运行效率低而设计的。
往往与其他通信机制,如信号量结合使用,来达到进程间的同步和互斥
5)信号量
主要是作为进程间以及同一进程不同线程之间的同步手段
6)套接口
更为一般的进程间通信机制,可用于不同机器之间的进程间通信。
4.算法及设计
5.测试问题
5.1.我的笔记
Quality:meeting requirements&& fit for use Prevention & detection Verification 验证 & validation 确认
SQA:1.testing :verify too late only good to test cases 2.software configuration management :discipline,softwaredevelopment,document control,problem tracking,changecontrol,maintenance 3.quality control :monitor,observe/requirement Reviews inspections of code/document checks for user deliverable
Non-execution-basedtesing:walkthrough、inspection、peer review
基于运行的缺点:太迟,只对用例有效,有些没法测:文档配置,规格说明等
Black-Box Testing