一面

  • 1.http和tcp关系,网络分为哪几层,http在哪层?为什么分层(不会为什么分层,瞎说的)
  • 2.get、post区别,啥是幂等性
  • 3.tcp、udp属于哪层?谈谈关于这两个的理解(理解我说的是两个的区别)
  • 4.tcp有哪些方式保证可靠,讲下序列号和确认号(讲了三次握手中的确认号、序号,然后面试官问还有呢,不知道了)
  • 5.为什么是三次握手,了解4次挥手吗?为什么是4次,不是一次 ?我客户端发送FIN之后,服务器发送完直接关闭不行吗?(面试官提示什么双工网络和断开连接,可惜我没开窍还是不懂,就解释了全双工是个啥)
  • 6.进程和线程有什么区别?线程死掉和进程死掉有什么关系?(线程死掉,他在的进程死掉了)然后又问了什么没有听懂。进程之间能共享内存吗?了解具体实现方式吗?(不了解)哪些进程共享,哪些线程共享?
  • 7.堆和栈有什么区别?为什么堆有内存碎片,栈没有内存碎片?char p=(char)malloc(1);p在哪里?多线程访问堆会有什么问题?(就是临界资源的竞争,然后面试官说你先回答我会有什么问题,不知道)
  • 8.线程的调度算法(我知道进程调度算法,面试官笑了,不知道为啥,然后我就说了进程调度算法)
  • 9.介绍快排和时间复杂度,归并的原理和时间复杂度
  • 10.用两个栈表示一个队列,并且写代码
  • 11.两个升序链表,合成一个降序链表,写代码(写出来后面试官问你为什么要new一个dummy节点,是不是会内存泄露,如何解决,不知道怎么解决。)

二面

  • 1.虚函数有什么用?(第一次遇到这种问题,有点头大,说什么用在多态上)
  • 2.析构函数是干什么用的?(第一次遇到,人都傻了,)
  • 3.多继承使用什么(然后掉线)
  • 4.指针和引用的区别,他们各自使用场景(瞎鸡儿说使用场景,毕竟没有用C++写过代码)
  • 5.static的作用
  • 6.其他文件也要访问修改,(使用extern来声明)
  • 7.写代码 树的最大路径 想了半天不会做,想放弃了,然后面试官好心的给我换了道题目 换成了输入一个float 数和int 的n 保留float 小数点后n位 写完后,面试官让我自己测一下,然后我改了改就差不多了,最后面试官问了你还有哪些没考虑到的,我说n比float小数点后最多的还要多,然后面试官说float为负数怎么办,我说先转化成正的处理,然后再变成负的。 代码写完后网络稳定了
  • 8.进程的死锁,哪4个条件
  • 9.事务有什么用?(头大,,你让我说哪4个也好啊)
  • 10.B树B+树的区别
  • 11.DNS介绍一下
  • 12.https和http的区别,https的原理