北京钛核互动golang服务端 一面凉经
投完会先让做一下笔试题,看他出的题挺简单的,看24年的面经也觉得挺简单的,结果一面吓哭了,算法计网操作系统数据库轮流来,好久没刷算法也是被狠狠拷打了
1、自我介绍
2、分别讲下栈和堆的特点和应用场景
3、堆插入时间复杂度? logn是怎么来的
4、堆底层怎么实现的?父节点和子节点之间有什么关系?
5、口撕:有一个栈A存了多个无序整数,还有一个空栈B,要求借助栈B对无序整数排序,空间复杂度O(1)(汉诺塔问题)
6、字符串子串和子序列的区别? 怎么判断A是否是B的子串? kmp算法是怎么优化时间复杂度的?(说半天结果时间复杂度都忘了
7、口撕:最长公共子序列(没想起来,是多维动态规划
8、讲一下你自己做的项目中,有哪些功能模块用到了go的特性?
9、go中channel的概念?channel有哪些特性?都有什么应用场景?
10、nil channel和 已关闭channel 的区别
11、channel是如何保证并发安全的? channel底层用的锁和平常业务使用的锁有区别吗?(我答没区别,应该没吧,底层代码不就是mutex)
12、channel、互斥锁和原子锁区别和适用场景?
13、进程和线程的区别? 进程内存空间是怎么划分的?按地址从低到高回答
14、讲一下网络通信模型,OSI/TCPIP都可以? TCP/UDP属于哪一层? TCP/UDP的特点和适用场景?
15、TCP断开连接为什么要四次挥手? 讲一下TCP连接的状态机? 为什么要有time_wait和close_wait?
16、讲一下tcp拥塞处理机制,包括慢启动和超时重传
17、将一下你项目中数据库的使用场景?mysql索引分类?mysql是如何实现范式的?(梦回数据库原理课)
18、mysql索引查询是怎么运作的? B树和B+树有什么区别? B+树有什么优势?
19、事务ACID讲一下? mysql是如何保证事务的? mysql是如何根据redo log、undo log完成提交或回退的?
20、事务的隔离级别? 不同隔离级别锁的粒度?
21、redis有哪些数据结构? set和zset区别和应用场景?
22、假如要用zset来做排行榜,当有人分数相同时,先达到分数的排在前面,怎么实现?(redis原生支持该特性

查看7道真题和解析