阿里云+CVTE+杭州默安+华顺信安 后端开发面经集合
技术栈:golang
3.2 阿里云(计算平台)一面(电话面 60min)
1、给一个6升和5升的水杯,怎么分别取出1,2,3,4升水,能够取出水的区间是多少?
2、数组和链表区别
3、怎么判断链表有无环?快指针一定能追上慢指针吗?怎么证明?
4、哈希表(数据结构)怎么实现的?
5、哈希冲突的解决方法?经过哈希函数存入后怎么取出原先冲突的值?
6、linux常用的15个指令以及用途
7、Map的查询时间复杂度?
8、代码题:(1)字符串模式匹配;(2)用go实现tree命令打印
3.2 CVTE一面(50min)
1、slice的扩容机制
2、map的key不能是什么类型
3、channel读写数据的情况
4、协程创建子协程,如果子协程发生panic,协程会panic吗
5、context的内置类型,怎么使用的?
6、go gc过程
7、GC的根对象是指?
8、混合写屏障具体做了啥
9、用过什么数据库,幻读是什么,mysql会出现幻读吗
10、幻读怎么解决的
11、redis用来做什么,用过哪些数据结构
12、项目问题:发布者订阅者模型怎么实现的
13、传统消息队列的缺点
14、zset是怎么实现的
15、跳表是一个什么样的数据结构,具体讲一下
16、跳表的层高是由什么决定的
17、跳表插入一条数据,怎么确定这个数据所在的层高
18、跳表从上到下节点数量是怎么变化的
19、跳表随机插入的话是否会造成某一层的数据节点特别多
20、有什么其他的数据结构有利于实现zset的功能
21、zset的有序无重复的无重复是指什么
22、跳表能实现zset的无重复功能吗
23、项目问题:鉴权为什么考虑使用jwt不使用session/cookie?
24、jwt是怎么实现的?
25、场景题:强制用户下线,让其无法再次登录怎么设计?
26、多个客户端单一账号怎么禁止登录?
27、websocket的过程(服务器返回的状态码是多少)
28、了解其他的状态码吗?
29、401是指什么状态?(认证失败)
30、认证成功但没有权限访问会返回什么?
2.28 杭州默安后端golang一面(电话面 30min)
1、new和make的区别
2、map、channel、slice是否线程安全
3、说一说有缓冲和无缓冲channel
4、说一说context
5、说一说GMP模型
6、mysql的原子性是怎么保证的?持久性呢?
7、索引底层为什么用b+?和B树还有红黑树相比?
8、Redis为什么快?
9、Redis String底层实现?
10、ping是用什么协议完成的?在哪一层?
11、tcp-udp在哪一层
12、说一说三次握手/四次挥手
13、Tcp如何保证可靠性
14、1w个数据取最大的十个
3.2 华顺信安后端golang一面(40min)
1、jwt的结构,和session、cookie的区别,解决了什么问题
2、jwt一定好吗?什么场景用session会更好呢?
3、websocket可以和http可以共用一个端口吗?
4、redis发布订阅者模型?
5、go怎么实现的面向对象特性?
6、git rebase和merge的区别?
7、用过SSH吗,怎么设置免密登录?
8、最自豪的一个课题或者项目
9、还有一些简单的程序题,查bug并修改。
#我的实习求职记录##23届找工作求助阵地#