莉莉丝后端服务器go开发实习生一面二面挂
一面
极简版
- 自我介绍
- 解释一下虚拟地址是什么
- 一个几百 G 的游戏是怎么在只有几 G 的内存上运行的?
- 用户态怎么切换到内核态?系统调用
- c/c++编译完后,可执行文件的结构是什么样的?
- 进程和线程的关系
- 算法:介绍一下排序算法,比如快排
- 介绍一下 go 语言中的 channel
- TCP 和 UDP
- 数据库事务的属性
- 除了原子性都问了一遍性质和作用
- 事务隔离级别
- redis 使用过那些数据结构,介绍一下持久化操作
- 介绍一下 jwt,以及为什么使用 jwt ,有什么用?为什么以前浏览器使用的是 cookie + session ,改用 jwt 有什么好处?
- jwt 是明文的吗?
- 平常怎么进行并发编程
- CA的TLS和SSL协议是什么,简述一下握手的过程?
- 关闭已关闭的通道?
- 读关闭的 channel 能读吗?
- 写入关闭的 channel 能写吗?
- 读关闭的空 channel 会发生什么?
- 反问:如果入职主要做哪方面的工作?招聘信息上的“中台”是什么意思,后台和前台之间的中间?答:介绍工位。本质还是后台。
心路历程版
大致回忆了一下
- 自我介绍
- 解释一下虚拟地址是什么 这个我理解为,操作系统的内存结构和程序运行的虚拟地址,讲了虚拟内存,还提到了段页式内存地址转换 但是面试官可能想让我回答,一个几百 G 的游戏是怎么在只有几 G 的内存上运行的? 答了从磁盘调入内存,内存再淘汰不常用的数据。
- 用户态怎么切换到内核态?系统调用
- c/c++编译完后,可执行文件的结构是什么样的? 不知道怎么回答,但是仔细一想好像学过,就是汇编和机器指令
- 进程和线程的关系
- 算法:介绍一下排序算法,比如快排
- 介绍一下 go 语言中的 channel
- TCP 和 UDP
- 数据库事务的属性 说完 ACID 只记得原子性和一致性,隔离性和持久性脑抽忘记了,赶紧扯点别的
- 除了原子性都问了一遍性质和作用 只答上来一致性
- 事务隔离级别 读未提交(Read Uncommitted): 事务可以读取其他事务未提交的数据,可能会出现脏读、不可重复读和幻读问题。 读已提交(Read Committed): 事务只能读取其他事务已提交的数据,可以避免脏读问题,但可能会出现不可重复读和幻读问题。 可重复读(Repeatable Read): 事务在同一事务中多次读取相同数据时保证结果一致,但仍可能出现幻读问题。 串行化(Serializable): 最高隔离级别,事务串行执行,避免了脏读、不可重复读和幻读问题,但降低了并发性能。 明明才看过,就忘记了,只说了前两个,还说的不是很好。其实我擅长的是说索引,这个有点不太会讲。数据库方面答得不太好
- redis 使用过那些数据结构,介绍一下持久化操作 讲了 AOF (类似日志记录),和 RDB 快照(这个名字忘记了,功能说对的)
- 介绍一下 jwt,以及为什么使用 jwt ,有什么用?为什么以前浏览器使用的是 cookie + session ,改用 jwt 有什么好处? 改用 jwt 有什么好处?瞎扯加密后更安全,给下面埋雷。
- jwt 是明文的吗? 答不是明文的,是通过加密算法加密后的。但是面试官说是明文的,说我理解不太对,要再去看一下
- 平常怎么进行并发编程 答简单说了一下怎么用 go func 开新的协程,用 channel 搞并发控制,有缓冲和无缓冲的,阻塞的情况
- CA的TLS和SSL协议是什么,简述一下握手的过程?这个就打了前面一个问题,但是握手过程不清楚
- 关闭已关闭的通道?panic
- 读关闭的 channel 能读吗?可以
- 写入关闭的 channel 能写吗?不行,panic
- 读关闭的空 channel 会发生什么?不会,猜了一个panic,结果是零值(小问题,面试官应该不在意)
- 反问:如果入职主要做哪方面的工作?招聘信息上的“中台”是什么意思,后台和前台之间的中间? 总结:介绍工位。本质还是后台。
插曲
刚开始的时候电脑出问题了,听不到面试官的声音。想着重进面试平台会不会好,结果退出就不让进了!
还让我评价平台使用感受,直接 0 分。然后电话联系 hr 重进
还有一点,大锅,简历上写熟悉 golang 语法写成了 熟悉 goland 语法,🤡
面试官很 nice ,一直在引导,有很多问题都很有意思,即使我答不上来也是很耐心解释,面试体验很不错。祈祷能有后续😀
二面
一面结束第二天就是的
没想到还有二面 leader 面,以为直接 hr 面了,一天没准备,特别紧张,看来不到最后一刻不能放松啊,菜狗半场开香槟😥
面试官是一个leader,比较和善,做事非常有条理,面试过程分点提前告知我
还有一个 hr 面,在等通知,感觉 leader 面回答的一般
算法
给一个数组,找出一个子数组,要求子数组中的每个数字只出现一次,输出这个子数组的长度最长是多少。
操作系统
- 知道那些进程调度算法?
- 死锁是什么?如果发生了死锁,应该怎么破解?
计算机网络
- http1.0 和 http2.0 有了解过吗?有什么区别你觉得?
- TCP 是怎么建立稳定的传输通道的?
Redis
- 使用过那些数据结构,怎么使用的?(菜菜项目里只会键值存储,不敢让面试官问了)
- Redis 是使用单线程的吗?为什么链接 Redis 使用多线程,存储操作使用的是单线程
数据库
- 数据库的日志有哪些?分别有什么用?
- 数据库的索引是什么?为什么快?
- 有没有定位过慢查询的问题?出现了慢查询该怎么解决?
项目拷打
省略至少 5 个问题,按着简历上一点一点的问
其他
简历上写了 ES ,面试官看到了,但是菜菜本人只在B站上学会了怎么用,不会说原理,再加上很久没用到,于是和盘托出,简单地说了一下倒排索引和分词器(学 MySQL 时想到的😥)
反问
什么时候有通知……
总结
- 大部分问题在八股上都看过,能理解,但是面试一紧张就忘光了,很多问题只能模糊的答上个五五开,需要加强总结
- 算法题手速太慢了,没做出来,没有一遍过,事后一看时双指针边界问题没处理好🤡
- 😥保佑