公司题库

腾讯面经题库第 4 页

265 道题 7 个岗位 106 个标签

腾讯相关面试题第 4 页

当文件无法一次全部加载内存时,如何对大文件内容排序?

当文件无法一次全部加载内存时,如何对大文件内容排序?这道腾讯牛客题的关键是围绕“大文件外部排序”讲清概念、机制、取舍和边界。大文件无法一次加载内存时,用外部排序:按内存上限分块读取,每块在内存中排序后写成临时有序 run,再用 k 路归并把多个有序 run 合成最终有序文件。

如何用回溯法生成全排列?

如何用回溯法生成全排列?这道腾讯牛客题的关键是围绕“回溯生成全排列”讲清概念、机制、取舍和边界。用回溯生成全排列,维护当前路径 path 和 used 标记。每一层选择一个未使用元素加入路径,递归到长度为 n 时收集一个排列,然后撤销选择继续尝试。

MHA 中的 Dropout 和 MLP 中的 Dropout 有什么区别?

MHA 中的 Dropout 和 MLP 中的 Dropout 有什么区别?这道腾讯牛客题的关键是围绕“Transformer 中不同位置的 Dropout”讲清概念、机制、取舍和边界。MHA 中的 Dropout 和 MLP 中的 Dropout 目标都是正则化,但作用位置不同。MHA 里常见 Dropout 作用在 attention probabilities 或 attention output 上,影响 token 之间信息汇聚;MLP/FFN 中 Dropout 作用在隐藏层激活或输出上,影响逐 token 的非线性特征变换。

TCP 的 TIME_WAIT 状态如何理解?

TCP 的 TIME_WAIT 状态如何理解?这道腾讯牛客题的关键是围绕“TCP TIME_WAIT 状态”讲清概念、机制、取舍和边界。TIME_WAIT 通常出现在主动关闭连接的一方。它在发送最后一个 ACK 后等待 2MSL,目的是处理网络中迟到的旧报文,并保证对端如果没收到最后 ACK 可以重传 FIN 后仍能得到响应。

SVM 核函数应如何选择?

SVM 核函数应如何选择?这道腾讯牛客题的关键是围绕“SVM 核函数选择”讲清概念、机制、取舍和边界。SVM 核函数选择要看数据规模、特征维度、线性可分程度和非线性边界复杂度。线性核适合高维稀疏或近似线性数据,RBF 核适合中小规模非线性边界,多项式核适合明确存在特征交互阶数的场景。

HTTP 和 HTTPS 有什么区别,HTTPS 的公钥存放在哪里?

HTTP 和 HTTPS 有什么区别,HTTPS 的公钥存放在哪里?这道腾讯牛客题的关键是围绕“HTTP 与 HTTPS 区别及公钥来源”讲清概念、机制、取舍和边界。HTTP 是明文应用层协议,没有内建加密、完整性校验和服务器身份认证;HTTPS 是 HTTP over TLS,通过 TLS 提供加密传输、完整性保护和服务器身份认证。HTTPS 的服务器公钥放在服务器证书里,客户端用本地信任的 CA 根证书链验证证书可信。

TCP 协议在传输层承担什么作用,它如何保证可靠传输?

TCP 协议在传输层承担什么作用,它如何保证可靠传输?这道腾讯牛客题的关键是围绕“TCP 可靠传输机制”讲清概念、机制、取舍和边界。TCP 保证可靠传输依靠序列号、确认应答、超时重传、快速重传、校验和、滑动窗口、拥塞控制和有序重组。它保证的是可靠有序的字节流,不保证应用层消息边界。

随机森林的基本原理是什么,为什么它通常比单棵决策树更稳健?

随机森林的基本原理是什么,为什么它通常比单棵决策树更稳健?这道腾讯牛客题的关键是围绕“随机森林基本原理”讲清概念、机制、取舍和边界。随机森林通过 bootstrap 有放回采样训练多棵决策树,并在每个节点只随机选择一部分特征参与切分,最后分类投票、回归平均。核心目标是让基学习器差异化,从而降低方差。

Adam 优化器的基本原理是什么?

Adam 优化器的基本原理是什么?这道腾讯牛客题的关键是围绕“Adam 优化器原理”讲清概念、机制、取舍和边界。Adam 是把 Momentum 和 RMSProp 思路结合起来的自适应优化器。它维护梯度一阶矩 m 和二阶矩 v 的指数滑动平均,经过偏差修正后按参数维度自适应调整更新步长。

如何将一个已排序的大文件随机打乱?

如何将一个已排序的大文件随机打乱?这道腾讯牛客题的关键是围绕“大文件外部随机打乱”讲清概念、机制、取舍和边界。已排序大文件随机打乱不能直接 Fisher-Yates 全量加载。常见精确方案是为每条记录生成随机 key,然后按随机 key 做外部排序;近似方案是分桶随机分配、桶内 shuffle,再随机输出桶顺序。

进程和线程有什么区别,线程优先级如何理解?

进程和线程有什么区别,线程优先级如何理解?这道腾讯牛客题的关键是围绕“进程线程区别与线程优先级”讲清概念、机制、取舍和边界。进程是资源隔离和拥有单位,线程是同一进程内的调度执行单位。同一进程线程共享地址空间、堆、全局变量和文件描述符,但有独立栈、寄存器、TLS 和调度状态。线程优先级要放到调度器语境理解,Linux 普通线程受 CFS/nice 权重影响,实时线程受 SCHED_FIFO/SCHED_RR 优先级影响。

Linux 中如何远程检查端口是否连通?

Linux 中如何远程检查端口是否连通?这道腾讯牛客题的关键是围绕“Linux 端口连通与占用排查”讲清概念、机制、取舍和边界。远程检查端口连通常用 nc -vz host port、telnet host port、curl -v、nmap 或 bash /dev/tcp;本机查看端口被哪个进程占用常用 ss -lntp、netstat -lntp 或 lsof -i :port。

Transformer 的核心结构和自注意力原理是什么?

Transformer 的核心结构和自注意力原理是什么?这道腾讯牛客题的关键是围绕“Transformer 结构与自注意力”讲清概念、机制、取舍和边界。Transformer 的核心由多头自注意力、前馈网络、残差连接、LayerNorm 和位置编码组成。自注意力通过 Q、K、V 计算 token 之间的相关性,再用相关性加权聚合值向量。

同题还出现在 1 个公司岗位

Linux 中 source 命令的作用是什么?

Linux 中 source 命令的作用是什么?这道腾讯牛客题的关键是围绕“Linux source 命令”讲清概念、机制、取舍和边界。source 或 . 命令会在当前 shell 进程中执行脚本,而不是启动新的子 shell。因此脚本里导出的环境变量、函数、alias 或 cd 修改会影响当前 shell 会话。

常见聚类算法有哪些,各自适用什么场景?

常见聚类算法有哪些,各自适用什么场景?这道腾讯牛客题的关键是围绕“常见聚类算法场景选择”讲清概念、机制、取舍和边界。常见聚类算法包括 K-means、层次聚类、DBSCAN、GMM 和谱聚类。选择时要看簇形状、是否需要指定 K、噪声/离群点、样本规模、距离度量和是否需要软分配。

C++ 中 auto_ptr 和 shared_ptr 有什么区别?

C++ 中 auto_ptr 和 shared_ptr 有什么区别?这道腾讯牛客题的关键是围绕“auto_ptr 与 shared_ptr 所有权语义”讲清概念、机制、取舍和边界。auto_ptr 和 shared_ptr 的核心差异是所有权语义。auto_ptr 拷贝会转移所有权,源指针变空,语义危险且已废弃并从现代 C++ 移除;shared_ptr 使用控制块和引用计数共享所有权,最后一个引用释放时删除对象。

C++11 有哪些常用新特性?

C++11 有哪些常用新特性?这道腾讯牛客题的关键是围绕“C++11 常用新特性与解决的问题”讲清概念、机制、取舍和边界。C++11 的常用新特性包括 auto、range-for、lambda、右值引用和移动语义、智能指针、nullptr、constexpr、线程库、统一初始化和 unordered 容器。回答时要说这些特性分别解决什么问题。

同公司岗位有 2 条面经记录

如何判断单链表是否有环?

如何判断单链表是否有环?这道腾讯牛客题的关键是围绕“链表判环与快慢指针”讲清概念、机制、取舍和边界。判断链表是否有环,常用 Floyd 快慢指针。慢指针每次走一步,快指针每次走两步;如果链表有环,快指针最终会在环内追上慢指针;如果无环,快指针会先走到 null。

为什么数据库索引常用 B+ 树,B 树、B+ 树和二叉树有什么区别?

为什么数据库索引常用 B+ 树,B 树、B+ 树和二叉树有什么区别?这道腾讯牛客题的关键是围绕“数据库索引为什么常用 B+ 树”讲清概念、机制、取舍和边界。数据库索引常用 B+ 树,是因为它适合磁盘页和范围查询。B+ 树分叉多、树高低,非叶子节点只存 key 和子页指针,叶子节点顺序保存数据或主键并通过链表相连,能减少随机 I/O 并高效范围扫描。

二叉树有哪些基本性质和特点?

二叉树有哪些基本性质和特点?这道腾讯牛客题的关键是围绕“二叉树基本性质”讲清概念、机制、取舍和边界。二叉树每个节点最多有两个孩子,可分为普通二叉树、满二叉树、完全二叉树、平衡二叉树和二叉搜索树等。常见性质包括第 i 层最多 2^(i-1) 个节点,深度为 h 的二叉树最多 2^h-1 个节点。

快速排序的过程、时间复杂度和常见优化方式是什么?

快速排序的过程、时间复杂度和常见优化方式是什么?这道腾讯牛客题的关键是围绕“快速排序流程与优化”讲清概念、机制、取舍和边界。快速排序的过程是选 pivot,执行 partition,把小于 pivot 的元素放左侧、大于 pivot 的元素放右侧,然后递归排序左右子区间。平均时间 O(n log n),最坏 O(n^2),递归栈平均 O(log n)。

C++ 命名空间的作用和使用方式是什么?

C++ 命名空间的作用和使用方式是什么?这道腾讯牛客题的关键是围绕“C++ 命名空间的作用和使用方式”讲清概念、机制、取舍和边界。C++ 命名空间用于组织符号并避免命名冲突。库、业务模块和第三方依赖都可能定义同名类或函数,把它们放在不同 namespace 下,可以通过限定名明确访问。

数据库索引有哪些常见类型,它们有什么区别?

数据库索引有哪些常见类型,它们有什么区别?这道腾讯牛客题的关键是围绕“数据库索引类型”讲清概念、机制、取舍和边界。数据库索引类型可以按约束和结构分类:主键索引、唯一索引、普通索引、联合索引、前缀索引、全文索引、空间索引;InnoDB 还要区分聚簇索引和二级索引。

进程和线程有什么区别?

进程和线程有什么区别?这道腾讯牛客题的关键是围绕“进程与线程区别及上下文切换”讲清概念、机制、取舍和边界。进程是资源拥有和隔离单位,线程是同一进程内的调度执行单位。同一进程的线程共享地址空间、堆、全局变量和文件描述符,但有独立栈、寄存器上下文、线程局部存储和调度状态。

epoll 的 EPOLLONESHOT 是什么,适用于什么场景?

epoll 的 EPOLLONESHOT 是什么,适用于什么场景?这道腾讯牛客题的关键是围绕“epoll EPOLLONESHOT”讲清概念、机制、取舍和边界。EPOLLONESHOT 表示某个 fd 上的事件被触发并返回一次后,内核会临时禁用这个 fd 的后续事件通知。应用处理完当前事件后,需要用 epoll_ctl 的 EPOLL_CTL_MOD 重新 armed,才能再次收到通知。

Linux 下如何查看进程状态?

Linux 下如何查看进程状态?这道腾讯牛客题的关键是围绕“Linux 进程状态与 ps 输出”讲清概念、机制、取舍和边界。Linux 常见进程状态包括 R 运行或可运行、S 可中断睡眠、D 不可中断睡眠、T 停止、Z 僵尸。ps aux 还能看到 USER、PID、%CPU、%MEM、VSZ、RSS、TTY、STAT、START、TIME、COMMAND 等字段。

Linux 下如何查看一个进程打开了哪些文件?

Linux 下如何查看一个进程打开了哪些文件?这道腾讯牛客题的关键是围绕“查看进程打开文件”讲清概念、机制、取舍和边界。Linux 查看进程打开了哪些文件,常用 lsof -p PID,或 ls -l /proc/PID/fd。输出里不仅有普通文件,也包括 socket、pipe、eventfd、anon_inode 和已删除但仍被占用的文件。

Linux 下如何终止一个进程?

Linux 下如何终止一个进程?这道腾讯牛客题的关键是围绕“Linux 终止进程”讲清概念、机制、取舍和边界。Linux 终止进程通常先用 kill -TERM PID 发送 SIGTERM,让进程有机会优雅退出;无响应时再考虑 kill -KILL 或 kill -9。也可用 pkill/killall 按名称发送信号。

GDB 调试其他进程时为什么能读取其状态和内存信息?

GDB 调试其他进程时为什么能读取其状态和内存信息?这道腾讯牛客题的关键是围绕“GDB attach 与 ptrace 权限”讲清概念、机制、取舍和边界。GDB 调试其他进程能读取其状态和内存,核心依赖操作系统提供的 ptrace 调试接口。gdb attach 到目标进程后,内核会暂停目标进程,并允许调试器读取寄存器、内存和映射信息。

数组和链表有什么区别?

数组和链表都是线性表,但底层组织方式不同:数组用连续内存存放元素,链表用离散节点通过引用连接。这个差异决定了数组随机访问快、缓存友好,但插入删除和扩容成本可能高;链表插入删除在已定位节点时很快,但查找慢、缓存局部性差、额外指针开销大。工程上不能只背复杂度,要说明复杂度成立的前提,并结合 Java 的 ArrayList 和 LinkedList 对照。

同题还出现在 1 个公司岗位

编译器中的 AST 和词法分析分别是什么?

编译器中的 AST 和词法分析分别是什么?这道腾讯牛客题的关键是围绕“编译器词法分析、语法分析与 AST”讲清概念、机制、取舍和边界。词法分析负责把源代码字符流切分成 token,例如关键字、标识符、数字、运算符和分隔符;AST 是语法分析后得到的抽象语法树,保留程序结构和语义相关节点,通常会省略括号、分号等纯语法细节。

为什么线程上下文切换的开销通常小于进程上下文切换?

为什么线程上下文切换的开销通常小于进程上下文切换?这道腾讯牛客题的关键是围绕“进程与线程区别及上下文切换”讲清概念、机制、取舍和边界。进程是资源拥有和隔离单位,线程是同一进程内的调度执行单位。同一进程的线程共享地址空间、堆、全局变量和文件描述符,但有独立栈、寄存器上下文、线程局部存储和调度状态。

C++ 的继承机制有哪些类型和访问控制规则?

C++ 的继承机制有哪些类型和访问控制规则?这道腾讯牛客题的关键是围绕“C++ 继承类型与访问控制”讲清概念、机制、取舍和边界。C++ 继承包括单继承、多继承和虚继承;继承访问控制有 public、protected、private,决定基类 public/protected 成员在派生类中的可见级别。

C++ 运行时多态如何确定调用哪个派生类函数?

C++ 运行时多态如何确定调用哪个派生类函数?这道腾讯牛客题的关键是围绕“C++ 运行时多态派发”讲清概念、机制、取舍和边界。C++ 运行时多态通过虚函数实现:通过基类指针或引用调用 virtual 函数时,运行时根据对象的动态类型查虚函数表,调用最终覆盖的派生类函数。

进程、线程和协程有什么区别?

这道题本质是在考操作系统并发模型的分层理解:进程是资源隔离和资源分配的基本单位,线程是内核调度和 CPU 执行的基本单位,协程是用户态组织异步流程的轻量执行单元。面试时不能只背“进程重、线程轻、协程更轻”,要讲清地址空间、调度权、上下文切换成本、通信方式,以及在 I/O 密集、高并发服务中的取舍。

同题还出现在 1 个公司岗位

如何判断 SQL 查询是否发生索引失效?

如何判断 SQL 查询是否发生索引失效?这道腾讯牛客题的关键是围绕“SQL 索引失效判断”讲清概念、机制、取舍和边界。判断索引是否失效,核心看 EXPLAIN 或 EXPLAIN ANALYZE:possible_keys 有候选但 key 为空、type 退化为 ALL/index、rows 明显变大、filtered 很低、Extra 出现 Using filesort/Using temporary,通常说明没有按预期用上索引或扫描代价过高。

std::vector、std::list 和 std::map 的底层结构有什么区别?

std::vector、std::list 和 std::map 的底层结构有什么区别?这道腾讯牛客题的关键是围绕“std::vector、std::list 与 std::map 底层结构”讲清概念、机制、取舍和边界。std::vector 是连续动态数组,std::list 是双向链表,std::map 通常是红黑树这类自平衡有序树。三者的差异不只是 API,而是随机访问、插入删除、范围查询、内存局部性和迭代器失效规则不同。

C++11 中智能指针相关的新特性是什么?

C++11 中智能指针相关的新特性是什么?这道腾讯牛客题的关键是围绕“C++11 智能指针新特性”讲清概念、机制、取舍和边界。C++11 引入并标准化了 unique_ptr、shared_ptr、weak_ptr、make_shared 等智能指针能力,用 RAII 表达资源所有权,替代危险的 auto_ptr 拷贝转移语义。

std::vector::resize 的作用是什么,它如何影响 size、capacity 和元素构造?

std::vector::resize 的作用是什么,它如何影响 size、capacity 和元素构造?这道腾讯牛客题的关键是围绕“std::vector::resize 与容量管理”讲清概念、机制、取舍和边界。std::vector::resize 改变的是 size,也就是逻辑元素个数;如果变大,会构造新增元素,必要时扩容并迁移原有元素;如果变小,会析构多余元素,但通常不会保证缩小 capacity。它和 reserve 只调整容量不同。

C++ 智能指针为什么能避免内存泄漏?

C++ 智能指针为什么能避免内存泄漏?这道腾讯牛客题的关键是围绕“C++ 智能指针与内存泄漏治理”讲清概念、机制、取舍和边界。智能指针通过 RAII 把堆对象生命周期绑定到对象析构,能减少忘记 delete、异常路径提前返回和重复释放导致的问题。unique_ptr 表达独占所有权,shared_ptr 表达共享所有权,weak_ptr 用来观察对象并打破 shared_ptr 循环引用。

Linux 文件系统的基本存储结构是什么?

Linux 文件系统的基本存储结构是什么?这道腾讯牛客题的关键是围绕“Linux 文件系统存储结构”讲清概念、机制、取舍和边界。Linux 文件系统基本存储结构包括 superblock、inode、dentry、data block、inode/block bitmap、journal 和 page cache。目录项把文件名映射到 inode,inode 保存权限、大小、时间戳和数据块索引,data block 保存文件内容。

进程间和线程间分别有哪些同步方式?

进程间和线程间分别有哪些同步方式?这道腾讯牛客题的关键是围绕“线程同步与进程同步方式”讲清概念、机制、取舍和边界。线程同步发生在同一进程共享地址空间内,常用 mutex、rwlock、condition variable、semaphore、barrier、atomic 和 futex;进程同步跨地址空间,常用命名信号量、文件锁、共享内存配进程共享 mutex、管道、消息队列和 socket。