📡
首页
🏢
企业
📚
考试
📖
攻略
📰
日报
👤
我的
校招宝-应届生校园招聘情报站
聚合秋招/春招/实习/提前批
面试真题
技术面 + 非技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
2508 道
技术岗
641 道
非技术岗
1867 道
当前筛选
55 道
按赛道
技术岗以技术方向细分;非技术岗按「结构化 / 半结构化 / 无领导 / HR / 职能」细分
全部赛道(2508)
技术岗(641)
非技术岗(1867)
按方向/形式
点选即筛,再点「全部」还原
全部(2508)
求职动机(1737)
数据库(114)
C++(85)
Go(82)
Java(69)
网络(65)
操作系统(54)
后端(39)
前端(37)
算法(31)
银行面试(31)
结构化面试(30)
HR面试(27)
运维(22)
其他(17)
行为面试(14)
AI算法(13)
半结构化面试(12)
情景应变(10)
大数据(6)
测试(4)
无领导小组讨论(3)
自我介绍(3)
产品(2)
Python(1)
按难度
简单(26)
中等(55)
困难(1)
按企业
点选查看该公司全部题目
百度(161)
腾讯(139)
通用(87)
阿里巴巴(62)
网易(55)
京东(49)
中国储备粮管理集团有限公司(43)
字节跳动(34)
大华股份(11)
美团(10)
Momenta(8)
小鹏汽车(8)
深信服(8)
Shopee(7)
小米(7)
拼多多(7)
滴滴(7)
虎牙(6)
读书郎(6)
金山(6)
小红书(5)
快手(5)
搜狐(5)
闪送(5)
分类:Go · 难度:中等
55 道 · 点击进入查看参考答案
中等
Go
golang中哪些数据类型是线程安全的?
结论:Go原生数据类型大多非线程安全,仅channel及借助同步原语包装的类型并发安全。核心要点:1) channel本身线程安全,收发操作原子且同步;2) sync.Mutex等同步类型用于保护资源;3) atomic…
🎤 Momenta
中等
Go
goroutine怎么做同步控制
结论:goroutine同步控制可用channel、sync原语、context。核心方式:1) sync.WaitGroup:Add/Done/Wait等待一批任务完成;2) channel:通过无缓冲channel阻…
🎤 子虔科技
中等
Go
Map并发安全吗,如果是sync.map,它是如何保证并发安全?
结论:原生map非并发安全,并发读写会panic;sync.Map通过读写分离+原子操作保证安全。核心要点:1.原生map检测并发写冲突直接fatal error; 2.sync.Map结构含read(atomic.Va…
🎤 百度
中等
Go
Map的底层实现
结论:Go map底层是链式哈希表,由hmap和bmap构成。核心要点:1.hmap结构体含B(桶数=2^B)、buckets数组指针、oldbuckets(扩容旧桶)、count等; 2.每个桶bmap存tophash…
🎤 小红书
中等
Go
map的底层数据结构与线程安全
结论:底层为hmap和bmap哈希表,原生非线程安全。核心要点:1.数据结构:hmap含桶数组(2^B个bmap),bmap存tophash、key/value数组及溢出指针; 2.非安全原因:并发写或修改count、桶…
🎤 CMSTOP
中等
Go
map手动加锁与Sync.Map的区别
结论:手动加锁(map+Mutex)通用但读写均需锁;Sync.Map专为读多写少优化,读无锁。核心差异:1.锁粒度:手动锁全局互斥,Sync.Map用原子读+脏锁;2.适用场景:手动锁适合写频繁或需复合操作,Sync.…
🎤 百度
中等
Go
map在什么时候触发扩容
结论:Go map在负载因子超过6.5或溢出桶数量过多时触发扩容。核心要点:1.负载因子=元素数/桶数,插入后count > 6.5*桶数则翻倍扩容;2.溢出桶过多(如溢出桶数>=桶数且达阈值)触发等量扩容(整理碎片);…
🎤 百度
中等
Go
panic与匿名函数的异常捕获和处理
结论:Go中panic触发运行时错误导致程序终止,可通过在defer中调用recover结合匿名函数捕获处理。原理:panic会中断当前函数执行,沿调用栈向上抛出,执行延迟调用(defer);若在defer函数(常写为匿…
🎤 字节跳动
中等
Go
recover 怎么使用的,defer 相比普通的在函数最后执行操作,其优势是什么?
结论:recover()用于捕获panic,必须在defer函数中直接调用才有效;defer优势在于无论函数正常返回还是发生panic,都能保证延迟函数执行,适合资源清理。核心要点:1. recover仅在defer f…
🎤 闪送
中等
Go
select两个channel性能稳定,三个channel时性能会发生抖动,为什么?
结论:Go中select在2个channel时性能稳定,3个及以上出现抖动,原因是编译器对少量case有特殊优化,多case走通用runtime.selectgo引入锁和调度开销。核心要点:1)case数为0/1/2时,…
🎤 Shopee
中等
Go
sync.WaitGroup底层原理
结论:WaitGroup通过计数器、信号量和原子操作实现协程等待。核心要点:1.内部state1包含counter、waiter计数和信号量;2.Add(delta)原子增加counter,Done()即Add(-1);…
🎤 大华股份
中等
Go
什么情况下会导致goroutine泄露?
结论:Goroutine泄露指协程因阻塞无法退出,持续占用内存。常见情况:1. 向无接收者的channel发送或从无发送者接收,永久阻塞;2. range遍历未关闭的channel永不结束;3. select无defau…
🎤 金山
中等
Go
用Golang的channel实现并发控制,两个goroutine交替打印奇偶数
结论:用两个channel实现信号同步,使两goroutine交替打印。核心:创建ch1,ch2,goroutine A收ch1打印奇数后向ch2发信号,B收ch2打印偶数后向ch1发信号,主协程先触发ch1。示例:ch…
🎤 百度
中等
Go
有缓存的channel的数据接收和发送流程
结论:有缓存channel基于环形缓冲,发送接收在缓冲不满/不空时不阻塞。流程:发送时,若缓冲有空位则拷贝数据入队并返回;若满则当前goroutine入发送等待队列并阻塞,待接收方取走数据后唤醒;接收时,若缓冲非空则取数…
🎤 京东
中等
Go
mutex底层原理是什么?
结论:Mutex 底层依赖原子操作和等待队列实现互斥。以 Go sync.Mutex 为例:内部 state 字段(原子整型)记录锁状态,包含 locked、woken、starving 标志。加锁时先 CAS 尝试置位…
🎤 英伟达
‹ 上一页
第 3 / 3 页
题目整理自公开面经,答案由校招宝自研生成,仅供参考
首页
企业
考试
攻略
日报
我的