百度网盘 golang实习面经

全程50min无算法
1. 自我介绍
2. 实习内容拷打(实习时候负责的系统架构,qps,pv,稳定性,性能优化和线上事故处理)
3. goroutine内存泄漏的情况?如何避免
4. 讲一下协程和线程的区别?从多个角度说明,讲一下golang协程是如何调度的,和java线程的区别
5. slice和array的区别,讲一下底层的结构
6. channel的用途和使用上要注意的点,底层的结构是怎样的
7. orm框架的优缺点
8. 操作系统内核态和用户态的区别,何时进入内核态or用户态
9. tcp和udp的区别,他们的报头结构,tcp的三次握手和四次握手的中间状态有哪些
10. https中的TLS/SSL层是用来干什么的,讲一下根证书和证书链和https握手的流程
11. 常见的攻击手法有哪些,讲一下中间人攻击和跨域攻击的原理,跨域攻击主要是利用了浏览器的什么机制

总结:从某个需求开始不断地深挖直到答不上来,面试官水平在线

11.25更新:已挂
全部评论
题解: goroutine内存泄漏的情况?如何避免 goroutine内存泄漏基本上是因为异常导致阻塞, 可以导致阻塞的情况 1 死锁, goroutine 等待的锁发生了死锁情况 2 chan没有正常被关闭,导致读取读chan的goroutine阻塞 如何避免 1 避免死锁 2 正常关闭 3 使用context管理goroutine, 超时结束goroutine 协程和线程的区别 主要的区别在于协程是用户级的并非单位, 不需要进入到内核态处理. 所以协程更加轻量级, 不占用内核资源. slice和array的区别,讲一下底层的结构 array本质是一个固定数组, 内存层面就是一块固定的内存区域,不会改变, 传递的时候是拷贝一份完整数据. slice本质上是一个动态数组的封装,底层指向不是一个固定内存,可以重新指向新的内存,传递的时候底层指向相同的内存. channel的用途和使用上要注意的点,底层的结构是怎样的 channel是golang中协程之间的数据交互的重要工具,相当于与进程内的一个消息队列. 注意点: 最重要的是chan的close处理, 不然很容易出现异常, 1写数据goroutine中调用close, 2不要多次调用close, 3使用信号通知chan close了 底层结构: 环形队列(缓存数据, 无缓存的时候用不上), 读goroutine 队列(链表), 写goroutine 队列(链表), 锁 orm框架的优缺点 orm封装了对数据库的操作,并且自动转换内存数据结构和数据库字段, 优点是方便,开发效率高, 缺点是有些场景性能低, 复杂对像转换处理起来不方便. 操作系统内核态和用户态的区别,何时进入内核态or用户态 内核态: 高权限,执行系统操作,操作资源,调度管理等等 用户态: 低权限,执行用户程序操作 进入内核态: 中断(系统调用, 时间片到期等) 进入用户态: 内核态处理完成,调度用户线程处理程序 tcp和udp的区别,他们的报头结构,tcp的三次握手和四次握手的中间状态有哪些 tcp: 可靠(数据顺序接收, 数据不丢, 数据不重复), 面向连接, 字节流(需要), 性能低 udp: 不可靠, 数据包, 性能高 三次握手/四次挥手 11种状态
18 回复 分享
发布于 2024-11-22 23:46 湖北
佬现在收了哪些了
点赞 回复 分享
发布于 2025-03-27 18:29 北京
面试官好专业
点赞 回复 分享
发布于 2025-03-21 16:07 广东
为啥会挂,答对了多少
点赞 回复 分享
发布于 2024-12-25 21:05 北京
mark
点赞 回复 分享
发布于 2024-12-24 17:55 辽宁
佬现在收了哪些了
点赞 回复 分享
发布于 2024-12-17 21:59 湖南
接好运
点赞 回复 分享
发布于 2024-12-09 14:42 湖南
使用的mallchat作为主项目么
点赞 回复 分享
发布于 2024-11-24 13:22 河南
👻了
点赞 回复 分享
发布于 2024-11-24 13:03 广东
佬现在收了哪些了
点赞 回复 分享
发布于 2024-11-23 20:01 广西
链轮和链条之间的传动比是怎么计算的呢?你知道不同齿轮组合对骑行速度的影响吗?
点赞 回复 分享
发布于 2024-11-22 23:43 广东
怎么问的这么深
点赞 回复 分享
发布于 2024-11-22 20:38 辽宁
orz
点赞 回复 分享
发布于 2024-11-22 17:58 广东
能给个timeline吗
点赞 回复 分享
发布于 2024-11-22 17:19 澳大利亚

相关推荐

2025-12-12 21:26
北京科技大学 golang
## redis### 都用过哪些指令?具体一些我的项目中redis除了分布式锁的使用,就剩下一个验证码的存储了,所以我就说了加key、设置key过期时间的### 分布式锁的流程问:拿不到锁的业务怎么办?> 如果别的业务拿不到锁就会自旋or进入队列等待和超时。问:这样的话,会导致并发性能降低,有什么解决方法?> 我不会,瞎说的:用乐观锁和版本控制降低锁的颗粒度。这里同学告诉我setnx就是乐观锁TAT问:redis怎么实现乐观锁?> 依旧不会,于是让我讲了mysql的乐观锁## 项目拷打了很久的项目,甚至让我投屏演示项目,我的docker有个一直卡着没启动好,耽误了10分钟,而且我投屏投错了,让面试官看着空白划鼠标了5分钟,汗流浃背了,好在最后启动成功了,挑了一个接口让我详细讲下如何写的。### 服务发现&负载均衡用的consul和nacos实现的,我自己写了个轮训的算法实现负载均衡,问我还有什么算法,我答了加权,保持最小连接数,urlhash,iphash,最短连接时间### 链路追踪怎么实现的?怎么找到性能瓶颈怎么解决?用的Jaeger,当时死活想不起来叫什么。找到瓶颈后,如果是路由方面的瓶颈,尝试考虑扩容,如果是数据的瓶颈,尝试redis存储热点数据### 测试和保证系统稳定性怎么做的?用的接口管理平台,接口管理平台自带一个压测### grpc+protobuf相比传统的http+json优势在哪?grpc可扩展性很强,再多台服务器部署扩容几乎是无痛的,只要做好服务发现和负载均衡。而protobuf相比json传输效率和压缩性能更强### jwt相比cookie+session优势在哪?我只说出来了jwt的优势,没说出cookie+session的劣势。### 讲一下gmp?协程和线程的区别gmp我讲完后,觉得我只是解释了3个词语分别是什么,没有讲到精髓。我又补充了窃取g,以及p队列初始化和流程,下来查看笔记觉得少答了抢占式调度吧我提到协程锁用户级轻量的线程,切换性能更高,并发性更强,并且由用户调度,对内核无感## 实习经历问我了都做了什么?在实习的不同阶段都有什么不同收获,我没理解面试官的意思,把项目讲到比较细节的部分,他打断我说主要说阶段性的,以周或者月为单位。我就聊了下。## 总结依旧没有按照顺序写,想到什么写什么。拷打了很多项目,我发现我很多时候,用到了xx技术,只是单纯看的教程和找的代码用到了,并不清楚为什么要用,以及相比于同类技术的优缺点在哪,这也是我接下来一个思考的方向,面试官给到了一些压力,也让我认识到了我的不足,八股方面特别是redis的,感谢面试官。
查看12道真题和解析
点赞 评论 收藏
分享
2025-12-30 17:20
西安科技大学 golang
查看17道真题和解析
点赞 评论 收藏
分享
评论
16
127
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务