面试真题

技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
641 道
覆盖企业
49 家
技术方向
16 个
当前筛选
8 道

按技术方向点选即筛,再点「全部」还原

按难度

按企业49 家企业的真题,点选查看该公司全部题目

企业:深信服8 道 · 点击进入查看参考答案

简单Go
golang内存逃逸有了解吗?
结论:内存逃逸是Go编译器将本应栈分配的局部变量改为堆分配的现象,由逃逸分析决定。核心要点:1) 逃逸原因:变量地址被返回或全局引用、闭包捕获、编译期无法确定大小(如动态切片)、赋值给接口类型;2) 原理:编译期静态分析…
🎤 深信服
简单Go
Mutex是乐观锁还是悲观锁,乐观锁和悲观锁的区别
结论:Mutex 是悲观锁。悲观锁与乐观锁核心区别在冲突假设与处理方式。悲观锁认为并发冲突频繁,操作前先加锁独占资源,如 Mutex、数据库行锁,保证安全但开销大、易阻塞;乐观锁认为冲突少,不加锁,通过版本号或 CAS …
🎤 深信服
简单其他
JSON与Protobuf的区别
结论:JSON是文本序列化协议,可读性好但体积大;Protobuf是二进制协议,体积小速度快但需schema。核心区别:1.数据格式:JSON为文本,Protobuf为二进制编码;2.性能:Protobuf序列化耗时与体…
🎤 深信服
中等Go
协程如何关闭
结论:协程关闭需通过通道通知或上下文取消,不可强制杀死。核心要点:1.Go中goroutine无法外部强制终止,需通过close(channel)发信号或使用context.Context取消;示例:ctx,cancel…
🎤 大华股份 / 深信服
中等Go
如何获取goroutine里面的一个函数执行的返回值
结论:获取goroutine内函数返回值,主流方案是用channel传递,或借助共享变量配合sync.WaitGroup/互斥锁。原理:go语句启动并发后,被调函数的返回结果会被丢弃,必须显式传出。方案1:无缓冲/缓冲c…
🎤 深信服
中等Go
如何在defer中修改方法返回值
结论:defer只能修改命名返回值,不能改匿名返回值。原理:Go函数命名返回(如func f() (r int))时return先赋值r再执行defer,defer修改r即改返回槽;匿名返回时return将局部变量拷贝到…
🎤 深信服
中等Go
先判断channel是否阻塞,再写入数据
结论:Go中不能直接判断channel是否阻塞,但可通过select语句实现非阻塞写入。核心要点:1. channel写入阻塞条件:无缓冲channel无接收者,或有缓冲channel缓冲区满;2. 非阻塞写入使用sel…
🎤 深信服
中等Go
for range中赋值的变量是指向临时变量还是真实的地址
结论:Go中for range遍历时,循环变量是复用的临时变量,取其地址得到的是同一地址,指向每次迭代赋值的临时变量,并非每个元素的真实独立地址。核心要点:for i,v := range slice { } 中v是每次…
🎤 深信服
题目整理自公开面经,答案由校招宝自研生成,仅供参考