📡
首页
🏢
企业
📚
考试
📖
攻略
📰
日报
👤
我的
校招宝-应届生校园招聘情报站
聚合秋招/春招/实习/提前批
面试真题
技术面 + 非技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
2508 道
技术岗
641 道
非技术岗
1867 道
当前筛选
55 道
按赛道
技术岗以技术方向细分;非技术岗按「结构化 / 半结构化 / 无领导 / HR / 职能」细分
全部赛道(2508)
技术岗(641)
非技术岗(1867)
按方向/形式
点选即筛,再点「全部」还原
全部(641)
数据库(114)
C++(85)
Go(82)
Java(69)
网络(65)
操作系统(54)
后端(39)
前端(37)
算法(31)
运维(22)
其他(17)
AI算法(13)
大数据(6)
测试(4)
产品(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
协程如何关闭
结论:协程关闭需通过通道通知或上下文取消,不可强制杀死。核心要点:1.Go中goroutine无法外部强制终止,需通过close(channel)发信号或使用context.Context取消;示例:ctx,cancel…
🎤 大华股份 / 深信服
中等
Go
多个协程读写map会怎样,什么是线程安全
结论:Go中多个协程并发读写map会触发运行时panic(concurrent map write),线程安全指并发访问下数据逻辑正确且无竞争。核心要点:1. Go原生map非并发安全,内部无锁,并发读写检测失败会崩溃;…
🎤 滴滴
中等
Go
切片不断append是如何给它分配内存的,具体扩容规则是怎样的
结论:append在容量不足时触发扩容,向系统申请新内存并拷贝原数据。具体规则:当原切片容量oldCap<1024时,新容量newCap翻倍(oldCap*2);当oldCap>=1024时,newCap按1.25倍增长…
🎤 百度
中等
Go
切片的底层原理
结论:切片是引用类型,底层为包含指针、长度、容量的结构体。原理:运行时表示为reflect.SliceHeader,含Data(unsafe.Pointer指向底层数组首地址)、Len(int)、Cap(int)。切片本…
🎤 小红书
中等
Go
切片的深拷贝与浅拷贝
结论:切片赋值或截取是浅拷贝(共享底层数组);深拷贝需新建底层数组并复制元素,若元素为引用类型还需递归拷贝指向对象。区别:浅拷贝如s2:=s1或s2:=s1[:],仅复制SliceHeader,Data相同,修改元素互相…
🎤 CMSTOP
中等
Go
如果chan 在有缓冲区的情况下缓冲区满了不想要后续的数据了怎么做
使用select配合default实现非阻塞发送丢弃数据,或关闭channel停止接收。核心要点:缓冲满时普通发送会阻塞;用select{ case ch<-data: default: // 丢弃 }可在满时走defa…
🎤 大华股份
中等
Go
如何定位goroutine溢出?
使用pprof和runtime接口定位goroutine溢出。核心要点:引入net/http/pprof包,访问/debug/pprof/goroutine查看栈和数量;代码中调用runtime.NumGoroutine…
🎤 金山
中等
Go
如何获取goroutine里面的一个函数执行的返回值
结论:获取goroutine内函数返回值,主流方案是用channel传递,或借助共享变量配合sync.WaitGroup/互斥锁。原理:go语句启动并发后,被调函数的返回结果会被丢弃,必须显式传出。方案1:无缓冲/缓冲c…
🎤 深信服
中等
Go
如何控制 goroutine 的生命周期,channel 的作用,context 的作用
结论:Go中goroutine生命周期需由自身通过channel或context主动退出,不可强杀。核心要点:1. channel用于goroutine间通信和同步,可定义done chan struct{}发送关闭信号…
🎤 闪送
中等
Go
如何在defer中修改方法返回值
结论:defer只能修改命名返回值,不能改匿名返回值。原理:Go函数命名返回(如func f() (r int))时return先赋值r再执行defer,defer修改r即改返回槽;匿名返回时return将局部变量拷贝到…
🎤 深信服
中等
Go
生产者、消费者用有缓存channel通信场景,如何让生产者和消费者退出
结论:通过关闭channel或context取消信号协调退出。要点:单生产者时生产完关闭channel,消费者用for v:=range ch读至关闭后退出;多生产者需用WaitGroup等待全部完成再由独立协程关闭;需…
🎤 Momenta
中等
Go
使用channel如何避免阻塞主协程
结论:在Go中避免channel阻塞主协程的关键是使用缓冲channel、select多路复用、启动独立goroutine接收以及超时机制。核心要点:1.无缓冲channel的发送和接收必须配对,否则阻塞;使用make(…
🎤 沥泉科技
中等
Go
先判断channel是否阻塞,再写入数据
结论:Go中不能直接判断channel是否阻塞,但可通过select语句实现非阻塞写入。核心要点:1. channel写入阻塞条件:无缓冲channel无接收者,或有缓冲channel缓冲区满;2. 非阻塞写入使用sel…
🎤 深信服
中等
Go
携程在哪些情况下会被剥离 M?
结论:Go中协程(G)不直接绑M,但G阻塞会导致P与M剥离。情况:1. G执行阻塞系统调用(文件读写、sleep)时M陷内核,P解绑M转去其他M跑新G;2. G通道阻塞或锁等待,G离运行队列,M跑其他G;3. 抢占:G运…
🎤 网易
中等
Go
怎么用chann来通信,6个channel通信的典型案例
结论:Go中channel用于goroutine通信,通过make创建,<-收发。6典型:同步等待(无缓冲channel阻塞主协程至子协程发done);数据传递(ch<-data与<-ch);扇出扇入(多worker读同…
🎤 滴滴
中等
Go
Channel的底层结构与数据的收发流程
结论:Go channel底层是hchan结构体,收发流程依赖缓冲区和等待队列。核心结构:hchan含buf环形队列(dataqsiz大小)、sendx/recvx索引、recvq/sendq等待队列(sudog链表)、…
🎤 百度
中等
Go
channel的用途和使用上要注意的4个点以及底层结构
结论:channel用于goroutine通信与同步;使用注意4点:1.向已关闭channel写会panic;2.从关闭channel读立即返回零值且ok=false;3.nil channel读写永久阻塞,常用于sel…
🎤 百度
中等
Go
channel底层结构分析
结论:channel底层是runtime.hchan结构体。关键字段:1.qcount当前元素数;2.dataqsiz缓冲区容量,buf指向环形数组;3.sendx/recvx读写索引;4.recvq/sendq为等待的…
🎤 京东
中等
Go
defer的作用与底层原理
结论:defer使函数延迟到当前函数返回前执行,用于资源清理和流程控制;底层由编译器插入runtime调用并维护_defer链表。作用:确保资源释放(如文件、锁)、panic恢复、代码逻辑分离。底层:Go编译器在函数调用…
🎤 字节跳动
中等
Go
for range中赋值的变量是指向临时变量还是真实的地址
结论:Go中for range遍历时,循环变量是复用的临时变量,取其地址得到的是同一地址,指向每次迭代赋值的临时变量,并非每个元素的真实独立地址。核心要点:for i,v := range slice { } 中v是每次…
🎤 深信服
第 1 / 3 页
下一页 ›
题目整理自公开面经,答案由校招宝自研生成,仅供参考
首页
企业
考试
攻略
日报
我的