本人双非硕士,专业自动化 非科班。项目写了科研项目、竞赛项目和烂大街的webserver。一面和二面是同一天(8月1日),三面和之前隔了12天。三面手撕一个地方写错了,再加上当时脑袋有点空白,调了二十分钟也没调出来,唉~
不过字节的面试体验确实十分友好,继续加油。
一面 55 min
- 自我介绍
- 聊项目
- 介绍一下这个服务器用到了哪些技术
- 有什么亮点
- 后续改进方向
- 如果现在要实现一个高并发的服务器,觉得有哪些要注意的点
- 讲一下网络模型分层、各层有哪些协议、以及自己对通信的理解
- 说一下拥塞控制中的慢启动、拥塞避免、超时重传、快重传
- 说一下加密算法,对称加密和非对称加密,两种的含义和区别
- 说一下 TSL 加密的过程
- 内联函数
- 运算符重载,比如重载 ++ 的意义
- 说一下 C++ 的强制类型转换特点
- 说一下命名空间是什么
- 线程共同工作要注意什么
- 一般怎么实现深拷贝,具体一点
- 数据库查询时太慢有什么优化办法
- 说一个你常用的设计模式
- 进程间通信的方式
- 说一下零拷贝技术
- 说一下比赛经历
- leetcode 698 :划分k个相等的子集 (20 min)
- 反问环节
原来紧接着二面要点新收到邮件的链接,我以为还是原页面,还让二面面试官等了我,尴尬
间隔大概 20 min
二面 77 min
自我介绍
数据库的三范式
你认为操作系统是什么
进程有哪些状态以及状态间的切换
进程间的通信方式、线程间的通信方式
进程的调度算法
内存管理机制 段式和页式的特点
虚拟内存是什么
说一下页面置换算法
多态实现的原理 为什么需要多态
指针和引用的区别
野指针 如何避免野指针
内存的分配方式,哪些变量分配在哪些区
什么是内存泄漏
讲一下智能指针 weak_ptr用以解决什么问题
讲一下 cookie 和 session
TCP / UDP 的区别
三次握手为什么不能是两次
网络中拥塞了会怎么样
leetcode 11 :盛水最多的容器
leetcode 238 :除自身以外数组的乘积
本来想用哈希,又发现不行。面试官提醒可以额外开辟多个数组,想到了其实跟接雨水差不过。后面面试官又让我补上输入输出自测一下,测试的时候有问题,调了半天发现是遍历忘了头尾。面试官也没有催一直在等我写完。
聊天 + 反问环节
三面 60 min
- 自我介绍
- 之前面试有什么不足 下来有没有补充学习
- 什么是 DNS 劫持? 怎么防范?
- 堆区和栈区的区别?
- 怎么排查内存泄漏? 讲外部工具的具体用法
- STL容器里 哪些是线程安全的 比如 vector list ? (这个完全不知道,开始懵了) 继续问:有没有看过 STL容器 的源码
- 什么是线程安全?
- 说一下如何重载运算符?
- 说一下模板?
- 说一下智能指针? 独占指针是如何实现独占的?
- 智力题:64匹马,8个赛道,用最少的次数找出最快的4匹
- leetcode 25:k个一组反转链表
还是许愿能三面通过吧哈哈哈
过了两天问HR,告知三面挂了。。。。
全部评论
(7) 回帖