申请的是Go岗位,因为之前参加青训营学过一点点皮毛,就试了试,面试情况来看,是我太草率了...哈哈哈哈
体验感很差的点是,他一直按键盘上的一个按键,弹笔帽上的那个东西.... 听着很不舒服
迟到了几分钟,说了下抱歉(好评,hhh)
没有自我介绍环节,第一句话“你是对Go底层比较熟悉是吗”(我简历上写的“熟悉C++和Golang基本语法”)
我说,我说对C++了解的更多,对Go底层没有了解很多。
他说:那还是问一下GO相关的吧。
开始坐牢(以下问题是乱序的,没有录屏)
- channel的作用,底层是怎么实现的,用在什么样的场景里(我回答了协程之间通信以及同步,追问还有没有其他的,我说不了解了...)
- 进程间通信的方式,都是用在什么场景下呢(消息队列和共享内存,有什么区别呢)
- 协程,进程,线程的区别
- GMP模型,说到当前M的队列里没有G时,会先从全局“偷”,如果没有会从其他的队列里“偷”一半的G进行运行,他问我为什么要这样设计,为什么要设计全局g队列和本地g队列,我想了下说:我觉得是因为操作系统的局部性原理... (求大佬指教一下)
- 问我自己实现过什么数据结构...比如红黑树这些 (平常写算法题最多写个链表,二叉树吧...._),害怕!手撕红黑树终于到我头上了???
- 问每种数据结构适合的场景
- 哈希表这个数据结构是怎么实现的,当出现哈希冲突怎么解决(开链,开放寻址),这两个方法有什么不同呢,各自的优势。为什么要rehash,怎样rehash
- 有一篇英文文章,要统计前七个词频率最低的单词(我说用优先队列,大根堆(当前频率最小的七个单词里频率最大的是堆顶元素,比堆顶小就pop堆顶),说完了之后给我来一句用map? 我人傻了... 是不是在问我怎么存数据? 我说用一个kv结构就行,k存单词,v存频次,对v做堆排序),现在写帖子的时候,感觉用快速选择是不是更好
- 并发编程,协程共享变量是否需要加锁
最搞人心态的来了!
给了几个区间,解释了题意,要合并有重叠的区间。我说了我的想法,然后说了句“不明白,写代码吧...”我问要不要写输入输出...没鸟我???我起手一个 #include,他问我会不会用Go写... 我直说了不是很熟练,平常写算法都用C++。好家伙!
它开始一直笑一直笑.......我就懒得理他,直接开始写了。
算法题:lc56.合并区间
#深信服##秋招##面试##23届秋招笔面经#