面试真题

技术面 + 非技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
2508 道
技术岗
641 道
非技术岗
1867 道
当前筛选
468 道

按赛道技术岗以技术方向细分;非技术岗按「结构化 / 半结构化 / 无领导 / HR / 职能」细分

按方向/形式点选即筛,再点「全部」还原

按难度

按企业点选查看该公司全部题目

难度:中等468 道 · 点击进入查看参考答案

中等Go
GPM 调度器?
结论:GPM是Go语言运行时的调度模型,通过G(协程)、P(逻辑处理器)、M(内核线程)实现高效并发调度。核心要点:G代表goroutine,轻量级用户态线程;P管理G队列并提供执行上下文,数量由GOMAXPROCS决定…
🎤 网易
中等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 尝试置位…
🎤 英伟达
中等HR面试通用
为什么不谈谈你自己?
回答对策:有几个基本的方法。一个是直接简要回答所问的问题,另一个是在回 答前要求把问题问得更明确。在上述两种情况下,你都要很快地把你的答案转到 你的技能、经验和你为得到目前这份工作接受的培训上来。 回答样板:“我来自一个…
🎤 通用
中等HR面试通用
我为什么要雇用你?
回答对策:直接的问题需要直接了当回答,为什么他们要雇用你呢?最巧妙的回 答对他们而不是对你有利。这个问题会使你向他们提供证据以证实你可以帮助他 们改进工作效率,降低成本、增加销售、解决问题(如准时上班,改进对顾客的 服务…
🎤 通用
中等HR面试通用
你有哪些主要的优点?
回答对策:你的回答应当首先强调你适应的或已具有的技能。雇用你的决定在很 大程度上取决于这些技能,你可以在后面详细介绍你与工作有关的技能()。 回答时,一定要简单扼要。 回答样板:“我具有朝著目标努力工作的能力。一旦我下定…
🎤 通用
中等HR面试通用
你想得到的薪水是多少?
回答对策:在商谈薪酬之前,你已经调查了解了自己所从事工作的合理的市场价 值。在与对方商谈时,不妨尽可能插入“合理的和市场价值”语汇。记得,商谈 时降低原来的开价轻而易举,但一旦开出低价后想再提上去就难乎其难。 回答样板1…
🎤 通用
题目整理自公开面经,答案由校招宝自研生成,仅供参考