面试真题

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

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

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

按难度

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

技术岗641 道 · 点击进入查看参考答案

简单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…
🎤 子虔科技
简单Go
map 基本原理
结论:Go map是基于哈希表的引用类型,提供平均O(1)读写。核心要点:1.底层为哈希表,key经哈希函数映射到桶(bucket);2.冲突解决用桶内8槽+溢出桶链;3.扩容采用渐进式rehash,避免停顿;4.key…
🎤 小米
简单Go
map、slice未初始化操作会怎样,发生panic应该怎么办
结论:未初始化map为nil,直接赋值panic;未初始化slice为nil,append安全但索引访问panic。要点:1.nil map写入报'assignment to entry in nil map',须用ma…
🎤 闪送
简单Go
map与切片哪个是线程安全的
结论:Go语言的map和slice均非线程安全,并发读写会导致panic或数据错乱。原理:map底层无锁,并发写触发runtime抛出'concurrent map writes'崩溃;slice底层是结构体含指针/长度…
🎤 百度
简单Go
String和byte切片的区别
结论:Go中string是不可变字节序列,byte切片是可变字节数组。核心区别:1.可变性:string底层结构含指针和长度,内容只读,修改编译报错;[]byte可修改元素如b[0]='x';2.内存:string赋值或…
🎤 金山
简单Go
关闭的channel数据的发送与接收
结论:向已关闭channel发送数据会引发panic;从已关闭channel接收,若缓冲区有数据则先读出,随后返回零值且ok=false;重复关闭同样panic。原理:channel关闭后运行时禁止发送,接收通过hcha…
🎤 京东
简单Go
Mutex是乐观锁还是悲观锁,乐观锁和悲观锁的区别
结论:Mutex 是悲观锁。悲观锁与乐观锁核心区别在冲突假设与处理方式。悲观锁认为并发冲突频繁,操作前先加锁独占资源,如 Mutex、数据库行锁,保证安全但开销大、易阻塞;乐观锁认为冲突少,不加锁,通过版本号或 CAS …
🎤 深信服
简单Java
常用注解?
结论:Java常用注解包括元注解、标准注解及Spring框架注解。核心要点:标准注解如@Override(校验重写)、@Deprecated(标记过时)、@SuppressWarnings(抑制警告);Spring注解如…
🎤 网易
简单Java
方法重载和覆写的区别?
方法重载(Overload)和覆写(Override)核心区别:1.定义:重载是在同一类中方法名相同但参数列表不同(类型、个数、顺序),返回类型可不同;覆写是子类继承父类后,提供与父类同名同参数同返回(协变除外)的方法。…
🎤 京东
简单Java
简述面对对象的三大特征!
结论:面向对象三大特征是封装、继承、多态。封装:隐藏对象内部实现细节,通过公开接口访问,提高安全性和可维护性;继承:子类继承父类属性和方法,实现代码复用与扩展;多态:同一接口不同实现,父类引用指向子类对象运行时动态绑定。…
🎤 腾讯
简单Java
面向对象编程的三大核心概念和5大基本原则
结论:三大核心为封装、继承、多态;五大基本原则(SOLID)为单一职责、开放封闭、里氏替换、接口隔离、依赖倒置。原理:封装隐藏属性与实现,通过公有方法访问;继承实现代码复用并建立类层次;多态允许父类引用指向子类对象,动态…
🎤 字节跳动
题目整理自公开面经,答案由校招宝自研生成,仅供参考