golang小厂面经,攒波人品。
全程一个多小时,没答上来的问题前面加粗了。
一面:
- 自我介绍
- 大二就来实习吗,上课怎么办
- 除了go之外还接触过什么工程语言,为什么选择学习go语言
- 说一下go语言为什么天然支持高并发
- 协程相对于线程,具体的优势在哪里,具体说一说
- CPU从一个线程切换到另一个线程会发生什么
- 进程间的通信方式有哪些,你有用过那些的,举一下例子(之前八股背爽了,一问具体实现就寄了,瞎编了一个😭 )
- 问我的论坛项目什么契机下做的
- 我看你项目里用了JWT做了用户身份的校验,你能说说JWT由那几个方面组成的吗?为什么能通过他来进行用户的身份校验呢?如何防止token被篡改(用完就忘,直接大寄)
- 你有了解过签名这个概念吗?(没听说过,废屁了)
- docker相对于虚拟机的优势是什么?他们的本质区别是什么(不懂装懂,废屁)
- 做这个项目有对接前端吗?(答,只用了postman测试,面试官很不满意,正常上线会出现跨域问题等等)
- redis有哪几种数据结构,项目里用了那种
- 项目里数据库都部署在什么地方,都起得是一个docker吗
- 做第二个框架项目的目的
- 中间件实现的原理
- 最近有接触什么新技术吗
- 为什么想到大二就来实习
反问:对我有什么建议吗?
- 第一个项目最好完整的跑一边,带前端后端,会遇到很多新问题,比如之前说的跨域问题
- 通过框架熟悉源码和底层实现挺好的,但是你没完全掌握(我是小丑)
二面:
- 自我介绍
- 为什么想到大二的时候找实习,平时上课怎么办
- 项目是自己独立写的还是根据教程写的
- 看你简历写的雪花算法生成用户ID,仔细说说。你觉得和mysql中自增的ID有什么优势。
- 用过协程吗?他和正常的多线程模型比有什么优势?一个go-routine最小占多大内存空间?
- 平时用redis实现了什么场景
- 看你用了RESTful架构,介绍一下。(RESTful不是框架,是设计API的一种风格,说的时候纠正过来了)
- 如果想更新一个资源用什么(说了PUT,想更新一部分的话,还有一个PATCH,这个不知道)
- 学校有什么技术社团,有没有很强的
- 和别人合作开发过吗
- 开发除了设计阶段,还有没有你认为很重要的阶段
- 自我评价一下你和别人比的优势在什么地方
- 算法题口答:在一个长字符串里寻找目标字符串,答KMP算法,继续追问KMP的复杂度。进阶:想要在长串中寻找很多目标字符串。没想出来,是AC自动机
- MySQL存储数据用的什么数据结构
- B+树插入分裂的操作是怎么样的,删掉一个节点会缩回去吗
- mysql中事务是什么
- 事务有原子性,还有什么其他特性?(著名八股文,狠狠开背)
- 一致性如何体现的
- 你mysql使用的是哪个版本?
- linux卡顿,如何检查
反问环节:
- 我表现如何,有什么建议要给我吗?
虽然技术上了解很多,但是基础的课程最好系统的学一遍,推荐了一本书,著名的CSAPP。保持多去探索,多去思考的这种心态,坚持下去会很不错的。目前做的努力挺好的,希望我坚持下去(泪目了😭 )