面试复盘 | 深信服面经,已收到口头offer
8.21 一面
- java hashmap数据结构,查询插入复杂度,查询、扩容机制,日常使用场景
- java的queue使用场景
- go如何顺序读map
- go slice/array区别联系
- go channel底层数据结构,如何实现读写阻塞分开的
- 循环队列如何判空判满
- 算法,判断链表是否有环,判断相交链表的公共入口
- 栈堆了解吗,什么时候分配到哪里呢(逃逸分析)
- 了解过那些gc算法,可达性分析如何确定根对象
- 口述快速排序的思路,最短路径的确定
- go 的select多个case同时满足,如何选择呢(随机)
- go 函数传递slice,外部能感知到内部的修改吗,怎么避免(深拷贝)
- 对象调用以一棵二叉树的形式存在,让你来设计可达性gc,你怎么设计(万万没想到是后序遍历,先处理子节点,再处理父节点)
- go channel的等待唤醒机制怎样
- go 多个协程如何设置并发顺序(waitgroup)
- go 函数超时如何设计(slect+timer+contextWithCancel,取消下游所有超时函数,前提是都传入了context)
- 讲一下对tcp的理解,三次握手,服务端丢包也会重传吗
- tcp半连接是什么,半连接队列满了怎么办(丢弃或者丢弃等待最久的),全连接队列满了呢(丢弃新来的连接)
- tcp的拥塞控制,ssthresh设置
- http各版本区别,HTTP2怎么处理队头阻塞(二进制分帧,乱序传输,服务端使用多路复用,一定程度缓解1.1管线化带来的队头阻塞,根本办法就是多开tcp连接)
- linux 文件夹的x权限有什么用(是否可以进入文件夹),r权限呢(是否可以读取目录结构)
- 僵尸进程和孤儿进程的区别,怎么解决
- redis持久化的策略,数据量大会阻塞主进程吗
- 面试官部门是做云端saas安全的,深信服是混合面试,最后才会知道去哪个部门,建议是让我把网络和os还有一些开源组件多深入了解一下
8.29 二面
- 自我介绍
- 问简历项目,有哪些亮点
- 实习做了哪些有意思的事情,很有成就感
- 无缓冲channel,10个协程去读,会发生什么;关闭channel之后,会发生什么
- struct{}怎么应用,和interface{}区别,相等吗
- 了解了java/go的内存布局和gc,对你平时写代码有什么帮助(...)
- go slice扩容机制
- tcp 的checksum百分百有效吗,具体怎么做的,为什么会使用checksum(反码求和,跟crc搞混了)
- http为什么用tcp,可以用udp实现吗,quic了解吗
- 算法,大数相加,字符串版本,进位处理的有点问题,写的不太好
- 面试官是北京团队的一个leader,说今天有点紧张,整体表现还行,2-3天出结果
技术面试应该是结束了,后面就是hr,可能会加一轮主管面,许愿hr面
有些问题答得不是特别好
- 对http重大版本迭代有点记混了,需要再巩固一下
- 对一些比较新的技术,诸如quic etcd raft算法,需要多了解一下,跟面试官有的聊
- 有段时间没刷算法题了,表现不是特别好,后面还是捡起来吧
============
8.30 面试通过
牛客许愿果然很灵,下午收到了面试通过的邮件,说终面会在线下进行,有hxd了解这个是啥面试吗
10.11 sp 加面➕hr面
主要问了一些项目和场景问题,hr面很常规,全程画大饼,口头告知了预计薪资,base深圳,可能会做上云方面的工作。
#面试复盘##面经#