字节跳动面试题 · 技术原理 · tech:go

字节跳动相关面试题,按最终去重题目聚合。

共 3252 道真题 · 当前筛选命中 18 道 · 更新 2026-08-05

筛选题目已选:技术原理 · tech:go
第 1 题Golang 中 interface{} 空接口的底层实现是怎样的? 考察 Go 语言空接口的动态类型机制与底层数据结构技术原理Go第 2 题为什么 sync.Mutex 要引入饥饿模式?它解决了什么问题? 考察对公平性与性能权衡的理解系统设计技术原理Go第 3 题请说明 Go 中 sync.Mutex 在不同版本(特别是 1.18 前后)的实现原理差异。 考察对 sync.Mutex 内部状态机、版本演进的理解技术原理方案权衡Go第 4 题请谈谈你对 Go 语言 Channel 和协程(goroutine)的理解,并说明它们在实际使用中的要点。 考察 Go 并发模型的理解、Channel 的使用场景与并发安全认知问题拆解风险判断技术原理Go第 5 题请详细解释 Go 语言中的 GMP 模型,说明其设计初衷与主要组成部分。 考察对 Go 并发调度模型的理解深度与原理掌握系统设计技术原理Go第 6 题除了 Go 的 goroutine,你还了解哪些底层并发控制机制? 考察并发控制机制的知识广度与底层理解系统设计技术原理Go第 7 题Golang 的 GC 在哪些场景下会导致程序出现卡顿? 考察对 Go 垃圾回收机制及 STW 导致卡顿的触发场景的理解性能优化风险判断技术原理Go第 8 题如果让你编译一个Golang的程序,在Linux下执行,可能包含哪些系统调用? 考察对Golang程序运行机制和Linux系统调用的理解问题拆解技术原理GoLinux第 9 题Go 运行时是如何实现 goroutine 栈的动态增长的? 考察 goroutine 栈管理机制与连续栈工作原理问题拆解技术原理Go第 10 题Goroutine出现panic会发生什么? 考察Goroutine panic的传播机制、程序崩溃风险与恢复策略风险判断技术原理Go第 11 题请对比说明进程、线程和协程的概念与区别,并讨论各自的适用场景。 考察并发原语的理解深度及场景权衡能力系统设计技术原理方案权衡Go第 12 题为什么 goroutine 初始栈只有约 2KB,而典型线程栈通常达到 MB 级? 考察对 goroutine 轻量级设计与线程栈差异的理解技术原理方案权衡Go第 13 题当函数A把切片作为参数传给函数B时,这是值传递还是引用传递?如果B对切片执行append操作,函数A中的原始切片能否感知到变化? 考察对Go语言切片底层结构和值传递语义的理解,以及append操作对共享底层数组的影响编码实现问题拆解技术原理Go第 14 题Golang中for range遍历slice时,变量的内存地址是否每次循环都相同?请解释原因。 考察Golang for range循环变量复用机制及内存地址理解技术原理问题排查Go第 15 题在Golang中,为什么会出现“for range遍历赋值后值不对”的问题?请分析原因并给出解决方案。 考察对for range变量复用陷阱的理解和解决能力编码实现技术原理问题排查Go第 16 题Go 中的 map 是线程安全的吗? 考察对 Go map 并发安全性与读写规则的理解风险判断技术原理Go第 17 题Golang 中类型断言的两种方式是什么?有什么区别? 考察类型断言的语法、返回值及使用场景差异风险判断技术原理Go第 18 题你了解 Go 的 channel 吗?请说明其底层实现原理。 考察对 Go 并发原语 channel 的结构与同步机制的理解问题拆解技术原理Go