2019 Byte Camp-工程赛道面试经历

2019 Byte Camp-工程赛道面试经历

面试官 30-40岁,主要从事后端

  1. 自我介绍

  2. 通过介绍中提及实习经历/实践经历提问

    • 线上实习如何分配时间

    • xx实习中使用的技术栈是什么?为什么用postgres?

    • React 是什么?大体介绍一下

    • 你对rest api的认识

      针对资源

      使用get/post/put/delete方法

    • python 的装饰器是什么

      在不改变原函数功能的情况下增加额外功能

    • 数据库中group by 是什么(只回答了使用方法,原理未提及,需要重新理解)

      原理:使用松散索引/紧凑索引/临时表的方法在排序后分组

  3. 基础知识问答

    • Linux进程相关,进程存储空间的分类,进程状态分类

      三状态模型:

      • 就绪ready:获得了处理机以外的所有资源,一旦得到处理机即可运行
      • 运行running:进程在处理机上运行时
      • 阻塞waiting:等待或者睡眠状态,等待某一事件发生中
    • tcp 三次握手过程,第一次握手发送报文名称,哪些flag置位参考博客

      三次握手:避免失效请求报文错误建立了连接,导致server一直等待,浪费资源

      • 客户端syn seq=x
      • 服务器 syn seq=y, ack=x+1
      • 客户端ack=y+1

      四次挥手:tcp全双工模式,需要确定双方均无数据发送才可断开连接

      • 主机1 fin seq=x ack=y,x-1是主机1前面发送的最后一个字节的序号
      • 主机2 ack=x+1
      • 主机2 fin seq=y,y-1是主机2前面发送的最后一个字节序号
      • 主机1 ack=y+1

      ack序号含义:希望收到第x个字节开始的报文段,且成功收到了前面x-1个报文

    • 二叉树,什么是完全二叉树,如何判别完全二叉树,设计算法

      可以使用栈的方式,按层遍历;如果本层存在有左无右的情况,那么下次遍历必须都是叶子结点;如果存在有右无左的情况,直接false

  4. 算法题

    给一个升序数组,判断这个数组每个元素平方后不同数字的个数

    • 平方数没用,直接判断绝对值
    • 使用头尾指针的方式向中间收缩
    • 需考虑数组中连续相同数的情况

总结

  1. 基础知识复习完全不充分
  2. 描述自己见解时语言不清晰

附图

  • 三次握手过程

三次握手

  • 四次挥手过程

三次握手

0%