docs/interview/xiaochang/%E6%B8%A1%E8%BE%B9%E8%B4%9D%E5%A1%94%E7%8C%AB%E4%B8%80%E9%9D%A2/ #15
Replies: 1 comment
-
|
答案是AI生成的 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
docs/interview/xiaochang/%E6%B8%A1%E8%BE%B9%E8%B4%9D%E5%A1%94%E7%8C%AB%E4%B8%80%E9%9D%A2/
渡边贝塔猫一面(小厂) 1. 请简单自我介绍一下# 我是人工智能专业,主要做过 Go 后端、Feed 流、本地缓存、Redis、RabbitMQ 相关项目。我的优势是学习快,能把算法和数据结构思维用到工程里,也愿意追线上问题、性能问题和业务细节。
2. 你学的是人工智能专业,为什么会想做后端开发?# AI 专业让我接触了数据、模型和工程实现,我发现自己更喜欢把系统真正跑起来。后端开发更接近业务核心,也更锻炼并发、存储、缓存、消息队列这些工程能力。
3. 讲讲你对 Go 语言的了解,它有哪些优点?# Go 是一门偏工程化的语言,语法简单、编译快、部署方便。它的 goroutine 和 channel 让并发开发成本很低,标准库也很完整,适合写 Web 服务、微服务、中间件和高并发系统。
4. Go 语言有哪些比较特殊的语言特性?# Go 比较特殊的点有 goroutine、channel、defer、interface、组合式结构体、显式错误返回。它通过 CSP 模型处理并发,也通过垃圾回收降低内存管理成本。
5. Channel 三连问:无缓冲发数据 / 有缓冲无接收 / 有缓冲无人发# 无缓冲 channel 发数据时,发送方会阻塞,直到接收方接收。
有缓冲 channel 发数据且无人接收时,缓冲区未满可以写入,缓冲区满后发送方阻塞。
有缓冲 channel 接收且无人发送时,缓冲区有数据就读,读空后阻塞;channel 关闭后继续读会得到零值和 ok=false。
6. 除了 Channel,哪些需要 make?Slice/Map 特点和注意事项# make 用于 slice、map、channel。
slice 是动态数组视图,包含指针、长度、容量,append 可能触发扩容并更换底层数组。
map 是哈希表,写入前需要初始化,nil map 写入会 panic,遍历顺序是随机的。
7. Panic 三连问:panic 会怎样 / HTTP 服务中 panic 怎么处理 / 什么情况容易 panic# panic 会中断当前 goroutine 的正常执行,并依次执行 defer,遇到 recover 可以恢复。
https://goclub.space/docs/interview/xiaochang/%E6%B8%A1%E8%BE%B9%E8%B4%9D%E5%A1%94%E7%8C%AB%E4%B8%80%E9%9D%A2/
Beta Was this translation helpful? Give feedback.
All reactions