8.10日电话面试
-
自我介绍,简历项目介绍
-
TCP/UDP传输(MRUDP的窗口机制、TCP速率控制、拥塞控制机制详细解释、TCP保证可靠的机制、TCP time_wai状态为什么?)
TCP速率控制—滑动窗口
拥塞控制—拥塞控制机制(慢开始、拥塞避免、快重传、快恢复)
TCP可靠传输的保证机制—确认连接状态下的传输,传输过程中丢包重传机制
四次握手后的time_wait原因—第一,保证客户端发送的最后一个ACK报文能够到达服务器、第二,防止已经失效的报文出现在本连接中,这样,本次连接的报文在这个2MSL的时间内都会从网络中消失,不会出现在下一次新的连接中 -
计算机网络(什么是计算机网络?分层?每一层的内容和协议?)
-
c++11 新特性(智能指针有哪几种、各有什么特点,shared_ptr如何避免内存泄漏,底层实现机制;c++11的函数对象、lambda函数及其捕获类型、匿名函数)
智能指针:shared_ptr unique_ptr weak_ptr ,有效防止内存泄漏。share_ptr防止内存泄漏的措施是,当它的引用计数为0时,才会释放所指向的内存。unique_ptr,只允许一个指针指向其指向的内存,是防止内存泄漏最有效的办法;weak_ptr是shared_ptr的辅助指针,不会使引用计数加一,只是来监视shared_ptr中关离得资源是否存在。 -
进程地址空间?进程与线程的区别,线程同步与线程互斥的区别
进程地址空间:与虚拟内存、分段分页等在操作系统中统一学完再总结
进程和线程的u区别:进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。
而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。
8.22日面试准备
- c++三大特性、虚指针、虚函数
C++面向对象三大特征:封装、继承、多态
多态:多态是由虚函数实现的,而虚函数主要是通过虚函数表(V-Table)来实现的。
如果一个类中包含虚函数(virtual修饰的函数),那么这个类就会包含一张虚函数表,虚函数表存储的每一项是一个虚函数的地址。这个类的每一个对象都会包含一个虚指针(虚指针存在于对象实例地址的最前面,保证虚函数表有最高的性能),这个虚指针指向虚函数表。
注:对象不包含虚函数表,只有虚指针,类才包含虚函数表,派生类会生成一个兼容基类的虚函数表。 - http 1.0 2.0 3.0 各有什么改变
http1.0的最大缺陷在于 短连接以及无法复用,在http1.1中,默认采用长连接,避免重复发送过程中建立连接带来的时延和资源浪费;http2.0的性能有了巨大提升,其中比较大的改进就是提出多路复用,做到同一连接并发处理多个请求ÿ