面试真题

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

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

按难度

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

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

简单C++
除了 `inline`,还能怎么设置内联函数?
结论:可通过类内隐式声明或编译器扩展实现内联。要点:1. 在类定义内部直接实现成员函数,编译器默认将其视为内联函数(隐式inline),如class A { void foo() {} }; 2. 使用编译器特定属性:G…
🎤 百度
简单C++
头文件里可以放什么?
结论:头文件用于声明接口,可放函数声明、类/结构体声明、宏定义、typedef、模板、inline函数、extern变量声明;不可放普通函数定义和全局变量定义以免多重定义。原理:C++编译单元独立编译,头文件被多个源文件…
🎤 百度
简单C++
explicit` 的作用?
结论:explicit修饰C++构造函数,禁止隐式类型转换。原理:1.单参数构造函数默认允许隐式转换如A a=10;调用构造。2.加explicit后只能显式A a(10);阻止意外转换。3.提升类型安全,避免如bool…
🎤 百度
简单C++
C++ 编译过程(四个阶段)
结论:C++编译分为预处理、编译、汇编、链接四个阶段。核心要点:预处理处理#指令,展开宏、包含头文件、条件编译,生成.i文件;编译将预处理代码进行词法、语法、语义分析及优化,翻译成汇编代码生成.s文件;汇编把汇编指令逐条…
🎤 百度
简单Go
讲讲defer关键字
结论:Go中defer用于延迟函数调用,在所在函数返回前按后进先出执行。原理:defer注册函数并拷贝参数压栈,函数return或panic时弹出。场景:资源释放(关文件、解锁)、错误日志;示例:f,_:=os.Open…
🎤 百度
简单Go
切片和数组的区别
结论:数组是固定长度的值类型,切片是动态长度的引用类型。区别:1. 数组长度编译期确定且属于类型([2]int与[3]int不同),赋值传参时整体拷贝;切片长度运行时可变,赋值时仅拷贝切片头。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
Go 两个 slice 比较
结论:Go中slice不可直接用==比较(仅能与nil比较),需手动遍历或使用reflect.DeepEqual。核心要点:slice是引用类型,底层含指针、长度、容量,==运算符仅允许与nil比较,否则编译错误;比较内…
🎤 百度
简单Go
go语言的切片和数组的区别(关系)
结论:数组固定长度连续内存,切片是数组的动态视图。核心要点:数组值类型,长度属类型;切片引用类型,含指针、长度、容量;切片底层指向数组。原理:声明[3]int是数组,[]int是切片;数组赋值拷贝数据,切片赋值拷贝头信息…
🎤 百度
简单Go
golang 并发原语是什么?
结论:Golang并发原语指语言内置与标准库提供的并发控制机制。核心要点:语言级原语包括go关键字启动goroutine、chan通道用于通信;标准库原语在sync和atomic包中,如sync.Mutex互斥锁、syn…
🎤 百度
简单Go
map与切片哪个是线程安全的
结论:Go语言的map和slice均非线程安全,并发读写会导致panic或数据错乱。原理:map底层无锁,并发写触发runtime抛出'concurrent map writes'崩溃;slice底层是结构体含指针/长度…
🎤 百度
简单Java
Java的基本数据类型和占用大小 (8种)
结论:8种基本类型及大小:byte(1字节), short(2), int(4), long(8), float(4), double(8), char(2), boolean(无明确规定,通常1字节)。整数:byte8…
🎤 百度
简单Java
Java三大特性
结论:Java三大特性为封装、继承、多态。封装:通过访问控制隐藏属性,提供public方法,降低耦合提高安全;继承:子类 extends 父类复用代码,单继承避免多父歧义,可重写扩展;多态:编译时重载与运行时重写,父类引…
🎤 百度
简单Java
SpringBoot最重要的注解 其他常用注解
SpringBoot最重要的注解是@SpringBootApplication,用于启动应用;其他常用注解按功能分:1. 组件标识:@Component通用组件,@Controller(Web层)、@Service(业务…
🎤 百度
简单Java
volatile 关键字的作用?
结论:volatile保证可见性、禁止指令重排序,不保证原子性。要点:可见性:修饰变量修改后立刻刷新主内存,其他线程读时从主内存加载,避免工作内存缓存不一致导致死循环或旧值;有序性:通过内存屏障禁止写读重排,如双重检查单…
🎤 百度
简单Python
装饰器、列表表达式
装饰器是高阶函数,用于在不改原函数代码下添加功能。原理:@decorator语法等价于fn=decorator(fn),装饰器接收函数返回包装函数(闭包),如日志、计时。示例:def log(f): def w(*a):…
🎤 百度
简单产品
怎么定义权限?
结论:基于RBAC模型定义角色并关联权限,明确主体、客体、操作。结构化思路:1. 列举资源(菜单、API、数据行);2. 定义细粒度权限点如删除用户;3. 抽象角色绑定权限;4. 用户赋角色间接授权;5. 扩展行级数据权…
🎤 百度
简单其他
技术栈有哪些?
结论:技术栈通常分层次:前端(HTML/CSS/JS、React/Vue/Angular);后端(Java/Spring、Go/Gin、Python/Django);数据库(MySQL、Redis、MongoDB);运维…
🎤 百度
简单其他
如何排查 bug
结论:排查bug应遵循“复现-定位-修复-预防”结构化流程。要点:1. 复现:明确操作步骤、环境及预期,尽量稳定复现;2. 定位:查日志/监控/报错栈,用二分法缩小代码范围,或借助断点调试、打印变量;3. 修复:理解根因…
🎤 百度
第 1 / 8 页下一页 ›
题目整理自公开面经,答案由校招宝自研生成,仅供参考