面试真题

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

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

按难度

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

分类:Go · 难度:简单26 道 · 点击进入查看参考答案

简单Go
1000个 goroutine 进行 IO 处理会发生什么?
结论:Go运行时可高效调度1000个goroutine进行IO,不会阻塞OS线程,资源占用低。核心要点:goroutine轻量(初始栈2KB),创建和切换成本低;网络IO时,goroutine阻塞触发runtime.ne…
🎤 网易
简单Go
发给10个协程,如何打出升序的数字
结论:通过channel控制协程结果按序输出,避免并发乱序。核心要点:1.启动10个协程并发执行,各自生成数字但完成顺序不确定;2.主协程预建10个channel,协程i向ch[i]发送数字i;主协程按索引0~9依次接收…
🎤 滴滴
简单Go
讲讲defer关键字
结论:Go中defer用于延迟函数调用,在所在函数返回前按后进先出执行。原理:defer注册函数并拷贝参数压栈,函数return或panic时弹出。场景:资源释放(关文件、解锁)、错误日志;示例:f,_:=os.Open…
🎤 百度
简单Go
结构体中的tag有什么作用
结论:结构体tag是字段的元信息字符串,主要用于反射场景下的序列化、校验、ORM映射等。原理:以Go为例,tag用反引号附在字段后如`json:"name"`;encoding/json等包通过反射读取tag,决定编码键…
🎤 大华股份
简单Go
开辟多个写协程向一个channel中写数据 是有序吗?
结论:多个写协程并发向同一个channel写数据,写入顺序不保证有序;channel本身不提供跨协程的写入顺序保证。 要点: - Go channel的发送操作是原子且互斥的,但哪个协程先获得发送机会由调度器决定; - …
🎤 京东
简单Go
切片的复制过程
结论:切片复制分两种,切片表达式仅复制元数据(浅拷贝),copy函数复制元素值(表层拷贝)。过程:使用copy(dst,src)时,系统取min(len(dst),len(src))个元素,将src对应索引处的元素逐个赋…
🎤 大华股份
简单Go
切片和数组的区别
结论:数组是固定长度的值类型,切片是动态长度的引用类型。区别:1. 数组长度编译期确定且属于类型([2]int与[3]int不同),赋值传参时整体拷贝;切片长度运行时可变,赋值时仅拷贝切片头。2. 数组在内存中直接连续存…
🎤 百度
简单Go
如何判断一个结构是否实现了某个接口?
结论:Go接口为隐式实现,判断结构体是否实现接口可用编译期断言或运行时类型断言。核心:1. 编译期检查:在包中声明 var _ MyInterface = (*MyStruct)(nil),若未实现则编译报错;2. 运行…
🎤 大华股份
简单Go
channel在项目中的4种典型应用
结论:channel典型应用有4种:1.数据传递:主协程与子协程通过chan传值,如go func(){ch<-res}();2.工作池:用任务chan分发,多个worker消费,控制并发,jobs:=make(chan…
🎤 百度
简单Go
defer的应用场景与defer的执行顺序
结论:defer用于延迟执行,常用于资源释放、异常恢复和退出前操作;执行顺序为后进先出(LIFO)。应用场景:1.关闭文件句柄;2.解锁互斥锁;3.recover捕获panic;4.记录函数耗时。执行顺序:函数内多个de…
🎤 百度
简单Go
gin框架常用中间件
结论:Gin框架常用中间件包括内置的Logger、Recovery,以及第三方如JWT鉴权、CORS跨域、Swagger文档、Prometheus监控等。原理:中间件是函数类型func(c *gin.Context),通…
🎤 京东
简单Go
Go 两个 slice 比较
结论:Go中slice不可直接用==比较(仅能与nil比较),需手动遍历或使用reflect.DeepEqual。核心要点:slice是引用类型,底层含指针、长度、容量,==运算符仅允许与nil比较,否则编译错误;比较内…
🎤 百度
简单Go
go常见的三种序列化和反序列化
结论:常见三种为JSON、Gob、Protocol Buffers。核心要点:JSON通用文本,标准库encoding/json;Gob Go原生二进制,高效但不跨语言;Protobuf需schema,跨语言高性能。原理…
🎤 读书郎
简单Go
go语言的切片和数组的区别(关系)
结论:数组固定长度连续内存,切片是数组的动态视图。核心要点:数组值类型,长度属类型;切片引用类型,含指针、长度、容量;切片底层指向数组。原理:声明[3]int是数组,[]int是切片;数组赋值拷贝数据,切片赋值拷贝头信息…
🎤 百度
简单Go
golang 并发原语是什么?
结论:Golang并发原语指语言内置与标准库提供的并发控制机制。核心要点:语言级原语包括go关键字启动goroutine、chan通道用于通信;标准库原语在sync和atomic包中,如sync.Mutex互斥锁、syn…
🎤 百度
简单Go
golang内存逃逸有了解吗?
结论:内存逃逸是Go编译器将本应栈分配的局部变量改为堆分配的现象,由逃逸分析决定。核心要点:1) 逃逸原因:变量地址被返回或全局引用、闭包捕获、编译期无法确定大小(如动态切片)、赋值给接口类型;2) 原理:编译期静态分析…
🎤 深信服
简单Go
golang协程的使用需要注意哪两个方面的问题
结论:Go协程使用需重点关注两方面:1) 协程泄露:协程因通道阻塞、缺少退出信号或死锁无法结束,导致资源常驻。应避免向已无接收者的channel发送、使用context取消或select超时控制;2) 并发安全:多协程访…
🎤 腾讯
简单Go
golang有哪些同步原语?
结论:Go同步原语主要包括sync包、channel及atomic包。核心要点:1) sync.Mutex/RWMutex提供互斥与读写锁;2) sync.WaitGroup等待一组goroutine结束;3) sync…
🎤 大华股份
简单Go
golang中哪些类型是引用类型,哪些类型是值类型
结论:Go中值类型赋值传参拷贝整体,引用类型拷贝引用头指向同一底层。值类型:int、float、bool、string、array、struct;引用类型:slice、map、chan、func、interface、po…
🎤 大华股份
简单Go
goroutine的使用场景
结论:goroutine适合轻量并发场景,尤其IO密集与高并发服务。使用场景:1) 网络服务每连接或请求起goroutine处理;2) 后台异步任务如日志上报、定时清理;3) 流水线或Worker池分发任务通过chann…
🎤 子虔科技
第 1 / 2 页下一页 ›
题目整理自公开面经,答案由校招宝自研生成,仅供参考