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