C++研发面试常问问题整理

  最近参加秋招,整理了一些校招C++研发岗经常问的问题:

1、在浏览器中输入一个网址,打开网页的过程,用到了什么协议,这些协议分别在哪里用到。
  DNS解析->TCP连接->HTTP请求->服务器处理请求并返回HTTP报文->浏览器解析渲染界面。
  参考:前端经典面试题: 从输入URL到页面加载发生了什么?

2、TCP三次握手及四次挥手的过程。为什么不是两次?如果两次握手有什么后果?断开连接为什么是四次而不是三次,四次挥手后为什么要有一个 2TIME_WAIT 的等待时间
  参考1:知乎-TCP 为什么是三次握手,而不是两次或四次?
  参考2:网络层-三次握手-四次挥手

3、线程和进程区别,进程之间的通信方式及其优缺点。
  进程是资源分配的最小单位,线程是程序执行的最小单位,参考:进程与线程

4、进程同步和互斥的区别。
  互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。  
  同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。
  参考:同步与互斥的区别和联系

5、进程调度方式及其优缺点。
  先来先服务、短进程优先、优先权调度算法、时间片轮转法、多级反馈队列调度算法等。
  参考:几种进程调度算法总结

6、排序算法总结。
  参考:排序算法总结

7、二叉树的遍历方式。
  前序、中序、后序、层次
  参考:二叉树前序、中序、后序遍历非递归写法的透彻解析

你可能感兴趣的:(C++,C++,面试,操作系统,计算机网络)