面试真题

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

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

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

按难度

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

难度:中等 · 企业:腾讯69 道 · 点击进入查看参考答案

中等AI算法
大模型训练流程简述
结论:大模型训练主要分为数据准备、预训练、微调对齐、评估与部署四个阶段。核心要点:1.数据准备:收集大规模语料,清洗、分词(如BPE),构建训练样本;2.预训练:采用自监督目标(如因果语言建模),使用分布式训练(数据/模…
🎤 腾讯
中等C++
手撕有界环形队列
结论:用固定数组+头尾索引+计数实现有界环形队列,支持入队出队且满时拒绝。核心要点:1)成员含数组buf、容量cap、头head、尾tail、大小sz;2)入队若sz<cap则buf[tail]=x, tail=(tai…
🎤 腾讯
中等C++
手撕string
结论:手撕string需实现动态字符数组管理,支持构造、拷贝、赋值、析构。核心要点:1)成员char* s、size_t len、cap;2)构造从C串深拷贝并分配cap;3)拷贝构造深拷贝避免浅拷贝悬垂;4)赋值用co…
🎤 腾讯
中等C++
const与static关键字的用法,与this指针的关系
结论:const修饰成员函数承诺不修改对象;static表示类级别共享,无this指针。要点:1.const用法:成员变量初始化后不可变;成员函数尾部加const,函数内不能改非static成员,此时this类型为con…
🎤 腾讯
中等C++
lambda和bind的区别
结论:lambda更现代、可读且易优化,bind用于旧式参数绑定。核心差异:1. 写法:lambda直接写代码块,bind需用std::placeholders重排;2. 捕获:lambda可显式捕获局部变量,bind需…
🎤 腾讯
中等C++
lambda引用捕获的风险
结论:引用捕获不延长变量生命周期,易导致悬空引用和未定义行为。核心风险:1. 返回含引用捕获的lambda,局部变量销毁后调用即悬空;2. 多线程/异步中,原作用域提前结束;3. 循环中用引用捕获循环变量,所有lambd…
🎤 腾讯
中等C++
malloc底层实现以及线程安全
结论:malloc底层常用ptmalloc(glibc),向内核brk/mmap申请堆/匿名映射,分割为内存块管理;线程安全靠arena锁与线程本地tcache。原理:分配器维护fast/small/large bins…
🎤 腾讯
中等C++
malloc是如何分配内存的,free怎么知道该释放多少内存?
结论:malloc从系统申请大块内存池(brk堆或mmap映射)后自行切割;free通过块头部元数据知大小。原理:实际分配时多划出头部(如8字节存size和标志),返回用户指针指向数据区;free将指针前移获头部读siz…
🎤 腾讯
中等Go
golang 读写锁的基本原理
结论:sync.RWMutex读写锁允许同时多个读操作或单一写操作,提升读多写少性能。核心要点:内部由写互斥锁和读计数器组成;读锁(RLock)当无写者持锁或写者等待时可直接获取,增加读计数;写锁(Lock)需等待所有读…
🎤 腾讯
中等Go
golang channel的底层实现
结论:channel底层是hchan结构体,实现为带锁的环形缓冲队列及等待队列。核心要点:1.hchan含buf(环形队列)、dataqsiz、elemsize、sendx/recvx索引、recvq/sendq等待者链…
🎤 腾讯
中等Go
golang协程调度、什么时候一定会发生线程上下文切换?
结论:Go采用GMP调度模型,协程(G)在用户态切换,线程(M)上下文切换发生在内核态。一定会发生线程上下文切换的场景:1) 协程执行阻塞式系统调用(如文件读写、阻塞socket、time.Sleep进入内核),M陷入内…
🎤 腾讯
中等Java
针对 Hashtable 的问题,有什么更好方案?
更好方案是ConcurrentHashMap。核心要点:Hashtable全表synchronized锁导致并发阻塞;ConcurrentHashMap(JDK1.8)用CAS+桶头synchronized细粒度锁,支持…
🎤 腾讯
中等Java
JVM 怎么进行垃圾回收的?
结论:基于可达性分析分代回收。核心要点:从GC Roots(栈帧局部变量、静态变量等)出发不可达对象判为垃圾;堆分年轻代(Eden+2 Survivor)与老年代;年轻代用复制算法(Minor GC),对象优先Eden分…
🎤 腾讯
中等Java
xxx.java 是如何变成二进制文件运行的?
结论:.java源文件经javac编译为.class字节码二进制,再由JVM加载、链接、初始化后解释或JIT编译运行。要点:编译:javac将源码编译成平台无关字节码文件,含魔数、常量池、方法指令等二进制结构;类加载:J…
🎤 腾讯
中等前端
加载一个 HTML 的浏览器是怎么渲染页面的?
结论:浏览器渲染流程为:解析HTML构建DOM树;解析CSS生成CSSOM;合并为渲染树;布局(Layout)算几何位置;绘制(Paint)成像素;合成(Composite)到屏幕。原理:HTML经分词成DOM,CSS优…
🎤 腾讯
中等前端
浏览器 DOM 树和 Vue 里的虚拟 DOM 树关系?
结论:DOM树是浏览器真实渲染的节点树,虚拟DOM是Vue用JS对象模拟的轻量描述树,两者为映射关系。核心要点:1.DOM树由HTML解析生成,操作真实DOM昂贵;2.虚拟DOM是普通JS对象(如{tag, props,…
🎤 腾讯
中等前端
往列表插入元素,虚拟 DOM 树怎么处理?
结论:虚拟DOM通过同层diff算法对比新旧VNode,带key时可精准定位插入位置并更新真实DOM。处理流程:1. 生成包含新元素的VNode列表;2. patch阶段按key比对,无key则默认就地复用易导致状态错乱…
🎤 腾讯
中等前端
怎么用闭包实现单例设计模式?
结论:闭包保存实例引用来实现单例。要点(JS):1.外层函数内声明instance=null;2.返回内层函数,内判instance空则创建对象赋值;3.闭包使instance持久化,保证全局唯一且惰性初始化;4.示例:…
🎤 腾讯
中等前端
Diff 算法怎么操作的?
结论:前端Diff算法对比新旧虚拟DOM树,以最小代价更新真实DOM,核心是同层比较与key优化。操作:以React为例,1.Tree Diff:跨层移动极少,直接按层级比较,不同层则销毁重建;2.Component D…
🎤 腾讯
中等前端
JS 怎么改变函数作用域?
结论:JS改变函数作用域(即this绑定)可用call/apply/bind显式指定,或箭头函数继承词法作用域。方式:1) fn.call(obj, arg)和fn.apply(obj, [args])立即调用并绑定th…
🎤 腾讯
第 1 / 4 页下一页 ›
题目整理自公开面经,答案由校招宝自研生成,仅供参考