Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

面试流程

按照一个搬砖的胖子 所讲的,大致流程如下:

  1. 平行面
  2. Leader面
  3. AA面(最终的大老板面)

HXyFGL

面试流程

平行面(第一面) 2021-11-08

自我介绍 + 算法(汉诺塔非递归)

平行面(第二面) 2021-11-10

自我介绍 + 二叉树的遍历(层次遍历不分层打印,层次遍历分层打印,层次遍历交叉层打印) + 最后闲聊

leader面 2021-11-12

自我介绍 + 实习项目介绍 + 行李箱开锁(3个密码,每次只能转一个,如果3个都相同将会死锁)

AA面 2021-11-30

等这么晚的原因就是国内的老板们太忙了

自我介绍 + 八股文扩展(估计teams带宽,操作系统内存分配 + 堆栈) + 两个链表相交(说思路) + 扩展到求两个树的第一个公共节点(讲思路) + 求平方根(写)

总结

自己投递的是cmd,部门处于快速扩张中,主要做的将我们传统的windows 365的业务搬移到云端

经过几轮面试的经历之后,还是感慨微软注重求职者的逻辑与解决问题的能力,通过算法考察体现,甚至算法中遇到的一些细节还会涉及到计算机的一些基础知识,比如我在写求解平方根代码的时候,直接使用if a * a > b这个代码,导致a*a结果可能溢出,面试官问了溢出的底层原理(所有数字在操作系统中都是通过二进制的补码来表示的,如果发生溢出将会丢弃高位)

前提知识:了解同步/异步,阻塞/非阻塞

参考:聊聊同步、异步、阻塞与非阻塞

正题:5种IO模型

  1. 同步阻塞
  2. 同步非阻塞
  3. 异步IO
  4. IO多路复用
  5. 信号驱动IO

参考:聊聊Linux 五种IO模型

select/poll/epoll区别

select, poll,以及epoll都是多路复用。

配合视频享用更加

这里插入我们的pdf图。。

场景:设计一个高性能的网络服务器,可以向多个客户端提供同时连接,并且可以处理这些客户端的请求。如何设计呢?

!> 很多题目还没有完善,之后会慢慢补充并完善……

进程概念

进程:正在执行程序的一个实例,是资源分配的基本单位。(进程控制块(process control block)描述进程的基本信息和运行状态,所谓的创建和撤销进程,都是指对PCB的操作)

线程概念

线程:进程中的单条流向,是程序独立调度的基本单位。(线程控制块(process control block)描述线程的基本信息和运行状态,所谓的创建和撤销线程,都是指对TCB的操作)

协程概念

协程可以理解为用户态的线程,其实就是可以被暂停以及可以被恢复运行的函数。虽然线程也可以自己暂停和恢复,只不过线程的调度是操作系统实现的,这些对程序员都不可见,而协程是在用户态实现的,对程序员可见。这就是为什么有的人说可以把协程理解为用户态线程的原因。
参考

This is a picture without description OS

前言

序列化:二叉树被记录成文件的过程叫做序列化

反序列化:通过文件内容重建原来二叉树的过程叫做反序列化

小根堆

几个注意点:

  1. 因为heap需要我们实现sort接口(3个方法,Less,Swap,以及Len)我们使用Less比较的时候决定了大根堆或小根堆
  2. push以及pop因为涉及到切片中元素个数的改变,可能进行扩容或缩容,所以要使用指针
  3. Push以及Pop的实现就按照对切片的处理即可
  4. 之后初始化我们的堆的时候需要先建立我们自己的堆,然后使用heap.Init()初始化
  5. 后面堆要弹出或加入元素都必须使用heap.Push()以及heap.Pop()

思路整理:

内存泄漏与内存溢出:

前缀树的结构: 结点的话本身不存储任何单词,它只存它要去到下一个路径上面这个路径代表的字符。 基本性质 结点本身不存储完整的单词。 从根节点到某一结点,路径上经过的字符连接起来,为该节点对应的字符串。 每个节点的所有子节点路径代表的字符都不相同。 走过的边就形成了单词 前缀树中的单词可以存储额外的信息,例如频次,后续的话我们就可以给用户做相应的推荐, 因为每个节点后面都有26个可能的字...

1. 单工通信(simplex)只有一个信道不可改变方向 单工通信只支持信号在一个方向上传输(正向或反向),任何时候不能改变信号的传输方向。为保证正确传送数据信号,接收端要对接收的数据进行校验,若校验出错,则通过监控信道发送请求重发的信号。 应用:此种方式适用于数据收集系统,如气象数据的收集、电话费的集中计算等。例如计算机和打印机之间的通信是单工模式,因为只有计算机向打印机传输数据,而没有相...

大致过程客户端获取URL - > DNS解析 - > TCP连接 - >发送HTTP请求 - >服务器处理请求 - >返回报文 - >浏览器解析渲染页面 - > TCP断开连接 详细文字讲解客户端: (应用层开始)获取URL,通过负责域名解析的DNS服务获取网址的IP地址,根据HTT协议生成HTTP请求报文(应用层结束) (传输层开始)根据TCP协...