腾讯一面凉经
面试官人挺好的...就是我太紧张没怎么听懂引导
golang
- 自我介绍
- Go的make和new关键字的区别, Go的性能为什么不错(编译型(协程忘记答了), 其实go的性能不如java,但是内存吃的少)
- Go的channel实现原理 (这个应该答得挺差, 从OMAKE那里开始讲,太混乱了)
- Go的GMP调度模型
- Go的map并发不安全,使用什么方法保证并发安全(sync.Map)
- sync.Map的实现 (这个有点印象,但是语言组织能力有点差)
- Go的slice和array的区别,扩容 [1.18之后更改过]。
- Go的逃逸分析
- 协程池 (我吐槽了下必要性... 对面好像不是很满意)
操作系统
- IO多路复用 (就知道个概念...真不知道实现)
- 用户态和内核态 (脑子抽了 拿用户线程和系统线程举例 被薄纱)
计算机网络
- rpc 和 http的区别...(嘴欠举了个grpc的例子)
- http2.0的改进 (就记得二进制效率高了...)
数据库
- MySQL的MVCC
- 事务的特性
- 事务的实现
- Recovery实现
- 隔离机制和Recovery的实现(语言组织的确实不好 把fuzzy checkpoint之类的全来了一遍...)
- 索引优化,如何解决慢查询
- Redis的Zset的底层原理
- 跳表的实现和优缺点
- ZSet的应用场景(这里又脑抽了,说我一般用Set,基本不用ZSet,然后听面试官讲解应用场景...)
- Redis有哪些数据结构
- 有用过memcache吗(大哥这是不是老了一点)
- redis高可用 (单线程模型? 我理解成读写分离了)
- redis如何实现分布式锁(setnx + expired +getset)
- 有实际使用过吗(这个真没有...)
项目相关
- Raft的应用场景(热备,读写分离)
- Raft整个的流程(从Leader选举开始一套讲完) (话说面试官听完来了一句: 看起来这项目是你自己做的啊,之前有的学生没写过就敢写上来丰富简历)
- Go的项目内存泄露了,如何排查 (想让我答pprof之类的.. 我又抽了,说排查代码,channel和go的代码是问题的高发区... )
算法题
- 洗牌算法 (写了大概三分钟 还行)
- 字符串数组最长公共前缀 (本来想用strings.contains偷懒的,想了想还是省点复杂度吧... 最狗血的是第一次还写越界了...)
反问
- 部门的技术栈和工作是? (技术中台,Go+PHP+C/C++, 负责给其他工作室提供技术支持?(好像是这个意思))
- 答错的部分和应当强化的部分 (还不错,操作系统知识有点欠缺)
今天中午打过来问了几个简单的问题,jwt什么的,然后问最早能实习的时间,讲完6月底对面就挂了...回宿舍一看流程已结束....