面试真题

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

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

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

按难度

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

企业:百度161 道 · 点击进入查看参考答案

中等C++
double 转 int64 用 `reinterpret_cast` 和 `static_cast` 区别
结论:static_cast做数值类型转换(截断小数),reinterpret_cast仅重新解释比特模式不做数值转换。区别:1.static_cast<int64_t>(d)将double值3.14转为int64_t的…
🎤 百度
中等Go
切片不断append是如何给它分配内存的,具体扩容规则是怎样的
结论:append在容量不足时触发扩容,向系统申请新内存并拷贝原数据。具体规则:当原切片容量oldCap<1024时,新容量newCap翻倍(oldCap*2);当oldCap>=1024时,newCap按1.25倍增长…
🎤 百度
中等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
Go 泛型
结论:Go自1.18起支持泛型,通过类型参数实现编译期多态。核心要点:使用[type T Constraint]语法定义类型参数;约束由接口描述,如comparable或自定义接口;泛型函数/结构体可安全操作多种类型,避…
🎤 百度
中等Go
Go 最新特性
结论:近年Go重要特性包括泛型(1.18)、模糊测试(1.18)、工作区(1.18)、loopvar每轮新变量(1.22)、内置clear/min/max(1.21)、结构化日志slog(1.21)等。核心要点:泛型提升…
🎤 百度
中等Go
Go channel
结论:channel是Go并发通信原语,基于CSP模型,用于goroutine间安全传递数据。核心要点:hchan结构体含缓冲队列、互斥锁、等待队列;无缓冲channel要求收发双方就绪(同步),有缓冲则异步直到满/空;…
🎤 百度
中等Go
Go context
结论:context用于跨goroutine传递取消信号、超时和请求域键值,管理生命周期。核心要点:Context接口含Done()<-chan struct{}、Err()、Deadline()、Value(key);…
🎤 百度
中等Go
Go select
结论:select用于监听多个channel的读写,实现多路复用。核心要点:每个case对应一个通信操作;随机选择可运行case;无default且均阻塞时等待;可配合time.After超时。原理:编译器将select…
🎤 百度
中等Go
go的并发编程如何避免死锁?
结论:避免死锁需确保channel操作有配对、加锁顺序一致、select超时、避免协程泄露。核心要点:1)无缓冲channel读写需另一协程接应;2)多锁按固定顺序获取;3)select加default或time.Aft…
🎤 百度
中等Go
go怎样在并发编程下等待多个协程的结束,Add和wait的底层实现是怎样的
结论:用sync.WaitGroup等待多协程结束,Add增计数,Done减一,Wait阻塞至零。核心要点:内部noCopy、state1含counter、waiter、信号量;Add原子增counter;Done调Ad…
🎤 百度
中等Go
golang GMP模型 Work Stealing偷多少?
结论:GMP模型中,当P本地队列空时,会从其他随机P偷取约一半的G。核心要点:1.GMP:G协程、M内核线程、P逻辑处理器,每个P有本地运行队列(数组最大256);2.工作窃取:P本地无G时,先查全局队列,再随机选其他P…
🎤 百度
中等Go
golang程序启动时发生什么
结论:Go程序启动历经汇编引导、运行时初始化、调度器启动,最终执行main函数。核心要点:1.入口为runtime.rt0_go汇编,设置栈、解析参数;2.调用runtime.osinit获取CPU数等,runtime.…
🎤 百度
中等Go
Map并发安全吗,如果是sync.map,它是如何保证并发安全?
结论:原生map非并发安全,并发读写会panic;sync.Map通过读写分离+原子操作保证安全。核心要点:1.原生map检测并发写冲突直接fatal error; 2.sync.Map结构含read(atomic.Va…
🎤 百度
中等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
用Golang的channel实现并发控制,两个goroutine交替打印奇偶数
结论:用两个channel实现信号同步,使两goroutine交替打印。核心:创建ch1,ch2,goroutine A收ch1打印奇数后向ch2发信号,B收ch2打印偶数后向ch1发信号,主协程先触发ch1。示例:ch…
🎤 百度
中等Java
@Transactional` 注解的原理?
结论:@Transactional基于Spring AOP和代理机制实现声明式事务。要点:1.原理:Spring容器扫描该注解,为Bean创建代理(JDK动态代理或CGLIB),在方法调用前通过TransactionIn…
🎤 百度
中等Java
手撕定时器实现
结论:基于优先队列(最小堆)和单线程轮询实现简单定时器。核心要点:1. 定义任务类包含执行时间戳和执行体Runnable;2. 用PriorityQueue按执行时间升序排序;3. 工作线程循环:取堆顶,若队列空则wai…
🎤 百度
中等Java
hashmap底层原理,有哪些线程安全的map
结论:HashMap底层为数组+链表+红黑树,线程安全Map有Hashtable、Collections.synchronizedMap、ConcurrentHashMap。原理:HashMap对key的hashCode…
🎤 百度
题目整理自公开面经,答案由校招宝自研生成,仅供参考