分页解析
第 17 页面试题
筛选题目 公司、岗位、知识点
公司
公司岗位
岗位
标签
为什么线程上下文切换的开销通常小于进程上下文切换?
为什么线程上下文切换的开销通常小于进程上下文切换?这道腾讯牛客题的关键是围绕“进程与线程区别及上下文切换”讲清概念、机制、取舍和边界。进程是资源拥有和隔离单位,线程是同一进程内的调度执行单位。同一进程的线程共享地址空间、堆、全局变量和文件描述符,但有独立栈、寄存器上下文、线程局部存储和调度状态。
C++ 的继承机制有哪些类型和访问控制规则?
C++ 的继承机制有哪些类型和访问控制规则?这道腾讯牛客题的关键是围绕“C++ 继承类型与访问控制”讲清概念、机制、取舍和边界。C++ 继承包括单继承、多继承和虚继承;继承访问控制有 public、protected、private,决定基类 public/protected 成员在派生类中的可见级别。
C++ 运行时多态如何确定调用哪个派生类函数?
C++ 运行时多态如何确定调用哪个派生类函数?这道腾讯牛客题的关键是围绕“C++ 运行时多态派发”讲清概念、机制、取舍和边界。C++ 运行时多态通过虚函数实现:通过基类指针或引用调用 virtual 函数时,运行时根据对象的动态类型查虚函数表,调用最终覆盖的派生类函数。
如何判断 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。
为什么会使用 Redis 实现消息队列?它适合哪些场景?
为什么会使用 Redis 实现消息队列?它适合哪些场景?这道腾讯牛客题的关键是围绕“Redis 实现消息队列场景”讲清概念、机制、取舍和边界。Redis 可以做轻量消息队列,适合延迟敏感、吞吐中等、业务可接受 at-least-once 和重复消费的场景。常见实现包括 List、Pub/Sub 和 Streams,其中 Streams 更适合可靠消费。
Java 中实现多线程有哪些方式?
Java 中实现多线程有哪些方式?这道腾讯牛客题的关键是围绕“Java 线程与多线程实现方式”讲清概念、机制、取舍和边界。Java 实现多线程可以从 Thread、Runnable、Callable/Future、线程池和 CompletableFuture 等方式回答。更底层看,Java 线程通常映射到操作系统原生线程,由 JVM 负责创建、调度协作、栈管理和状态维护。
数据库性能优化通常从哪些方向入手?
数据库性能优化通常从哪些方向入手?这道腾讯牛客题的关键是围绕“数据库性能优化方向”讲清概念、机制、取舍和边界。数据库性能优化要从定位、SQL/索引、表结构、事务锁、连接池、缓存、架构扩展和硬件参数多层看。先用慢查询日志、监控和执行计划定位瓶颈,再决定是改 SQL、加索引、拆表、调连接池还是做缓存/读写分离。
关系型数据库和非关系型数据库有什么区别?
关系型数据库和非关系型数据库有什么区别?这道腾讯牛客题的关键是围绕“关系型数据库与 NoSQL 对比”讲清概念、机制、取舍和边界。关系型数据库强调结构化 schema、SQL、表关系、Join 和 ACID 事务,典型如 MySQL/PostgreSQL;非关系型数据库按模型分为 KV、文档、列族、图数据库等,更强调灵活 schema、水平扩展和特定访问模式。
Redis 主从复制的原理是什么?
Redis 主从复制的原理是什么?这道腾讯牛客题的关键是围绕“Redis 主从复制原理”讲清概念、机制、取舍和边界。Redis 主从复制通过从节点向主节点发起 PSYNC,同步主节点数据和后续命令流。首次或断点不可用时做全量同步,主节点生成 RDB 发送给从节点;断线重连且 backlog 足够时可做部分重同步。
业务中为什么会引入 Redis?适合哪些典型场景?
业务中为什么会引入 Redis?适合哪些典型场景?这道腾讯牛客题的关键是围绕“Redis 典型业务场景”讲清概念、机制、取舍和边界。业务引入 Redis 通常是为了低延迟访问和高吞吐状态管理。典型场景包括高频读缓存、计数器、排行榜、会话、分布式锁、限流、去重、延迟任务和轻量消息队列。
Redis 访问变慢时如何排查和优化?
Redis 访问变慢时如何排查和优化?这道腾讯牛客题的关键是围绕“Redis 访问变慢排查”讲清概念、机制、取舍和边界。Redis 变慢要按客户端、网络、Redis 命令、数据结构、内存、持久化和系统资源逐层排查。不能只说扩容或加机器,先要确认慢在连接、排队、执行、返回还是下游依赖。
Java 线程是如何实现的?
Java 线程是如何实现的?这道腾讯牛客题的关键是围绕“Java Thread 到 OS 线程实现”讲清概念、机制、取舍和边界。现代 HotSpot 中 Java Thread 通常映射到操作系统原生线程,JVM 内部有 JavaThread/OSThread 等结构承接 Java 层 Thread 对象和 OS 调度实体。
Redis 如何保证消息可靠性?
Redis 如何保证消息可靠性?这道腾讯牛客题的关键是围绕“Redis 消息队列可靠性边界”讲清概念、机制、取舍和边界。Redis 可以做轻量消息队列,但可靠性取决于使用 Pub/Sub、List 还是 Streams。Pub/Sub 基本不保存离线消息,List 需要自己设计确认和重试,Streams 支持 consumer group、pending list 和 ACK,更适合需要可靠消费的场景。
HTTPS 中 TLS/SSL 的握手和加密原理是什么?
HTTPS 中 TLS/SSL 的握手和加密原理是什么?这道腾讯牛客题的关键是围绕“HTTP、HTTPS 与 TLS 安全链路”讲清概念、机制、取舍和边界。HTTP 是明文应用层协议,HTTPS 是 HTTP 运行在 TLS 之上。TLS 通过证书链验证服务器身份,通过密钥交换协商会话密钥,后续数据主要用对称加密传输,同时用完整性校验防止篡改。
TCP 连接关闭过程是什么,半关闭状态下还能否通信?
TCP 连接关闭过程是什么,半关闭状态下还能否通信?这道腾讯牛客题的关键是围绕“TCP 四次挥手与半关闭”讲清概念、机制、取舍和边界。TCP 关闭是双向独立关闭的过程,典型四次挥手是主动方发送 FIN,对端 ACK;对端也准备关闭时发送 FIN,主动方 ACK 后进入 TIME_WAIT。半关闭表示一端已经关闭发送方向,但仍可接收对端数据。
数据库中如何使用 MD5 哈希存储字段?有哪些安全风险?
数据库中如何使用 MD5 哈希存储字段?有哪些安全风险?这道腾讯牛客题的关键是围绕“数据库字段 MD5 哈希存储风险”讲清概念、机制、取舍和边界。MD5 是确定性哈希,不是加密。数据库中可用 MD5 存储某些字段的摘要用于去重或脱敏匹配,但不能用于安全保存密码,因为 MD5 快、可暴力破解,并且存在碰撞和彩虹表风险。
常见排序算法中哪些是稳定排序?
常见排序算法中哪些是稳定排序?这道腾讯牛客题的关键是围绕“排序稳定性”讲清概念、机制、取舍和边界。排序稳定性指相等 key 的元素在排序后仍保持原来的相对顺序。常见稳定排序包括冒泡排序、插入排序、归并排序、计数排序、基数排序和桶排序的稳定实现;常见不稳定排序包括快速排序、堆排序、选择排序和希尔排序。
Redis 的底层数据结构有哪些?跳表是如何实现的?
Redis 的底层数据结构有哪些?跳表是如何实现的?这道腾讯牛客题的关键是围绕“Redis 数据结构与底层编码”讲清概念、机制、取舍和边界。Redis 常用对外数据结构包括 String、List、Hash、Set、ZSet、Bitmap、HyperLogLog、Geo 和 Stream。回答时还要区分对外类型和底层编码,例如 SDS、listpack、quicklist、dict、intset 和 skiplist。
JVM 堆内存分配如何保证线程安全?
JVM 堆内存分配如何保证线程安全?这道腾讯牛客题的关键是围绕“JVM 堆对象分配的线程安全”讲清概念、机制、取舍和边界。JVM 堆内存分配保证线程安全,常见方式是优先使用 TLAB 给每个线程分配一小块私有 Eden 区域,线程在自己的 TLAB 里用指针碰撞快速分配;TLAB 不够或不适用时,再走 CAS 加失败重试或加锁的慢路径。
什么是数据库事务?事务的 ACID 特性是什么?
什么是数据库事务?事务的 ACID 特性是什么?这道腾讯牛客题的关键是围绕“数据库事务与 ACID”讲清概念、机制、取舍和边界。事务是一组数据库操作的逻辑单元,要么全部成功提交,要么失败回滚。ACID 分别是 Atomicity 原子性、Consistency 一致性、Isolation 隔离性和 Durability 持久性。
Go 中主协程如何等待其他协程执行完再继续?
Go 中主协程如何等待其他协程执行完再继续?这道腾讯牛客题的关键是围绕“Go WaitGroup 等待 goroutine”讲清概念、机制、取舍和边界。Go 中主 goroutine 等待其他 goroutine 最常用 sync.WaitGroup:启动前 Add 任务数,每个 goroutine defer Done,主 goroutine 调 Wait 阻塞直到计数归零。需要错误传播和取消时用 errgroup.WithContext 更合适。
MySQL 常见存储引擎有哪些?它们有什么区别?
MySQL 常见存储引擎有哪些?它们有什么区别?这道腾讯牛客题的关键是围绕“MySQL 存储引擎差异”讲清概念、机制、取舍和边界。MySQL 常见存储引擎包括 InnoDB、MyISAM、Memory、Archive 和 CSV。当前默认主流是 InnoDB,支持事务、行级锁、MVCC、外键和崩溃恢复;MyISAM 不支持事务,主要是表级锁。
同一个对象中两个 synchronized 方法分别被两个线程调用时会发生什么?
同一个对象中两个 synchronized 方法分别被两个线程调用时会发生什么?这道腾讯牛客题的关键是围绕“同一对象 synchronized 实例方法锁竞争”讲清概念、机制、取舍和边界。同一个对象里的两个 synchronized 实例方法使用的是同一把对象 monitor 锁。两个线程分别调用同一对象的两个 synchronized 方法时会互斥,先获得锁的线程执行,另一个线程进入 BLOCKED 等待。
SSL/TLS 的基本原理是什么?
SSL/TLS 的基本原理是什么?这道腾讯牛客题的关键是围绕“HTTP、HTTPS 与 TLS 安全链路”讲清概念、机制、取舍和边界。HTTP 是明文应用层协议,HTTPS 是 HTTP 运行在 TLS 之上。TLS 通过证书链验证服务器身份,通过密钥交换协商会话密钥,后续数据主要用对称加密传输,同时用完整性校验防止篡改。
什么是聚簇索引?
什么是聚簇索引?这道腾讯牛客题的关键是围绕“InnoDB 聚簇索引”讲清概念、机制、取舍和边界。聚簇索引是数据行按索引顺序存储的索引结构。在 InnoDB 中,主键索引通常就是聚簇索引,叶子节点保存完整行数据;二级索引叶子节点保存二级索引列和主键值。
AQS 的核心原理和常见实现类有哪些?
AQS 的核心原理和常见实现类有哪些?这道腾讯牛客题的关键是围绕“AQS 同步框架”讲清概念、机制、取舍和边界。AQS 是 JUC 中构建同步器的基础框架,核心是用 volatile state 表示同步状态,用 CAS 修改状态,用 CLH 变体队列管理获取失败的线程。ReentrantLock、Semaphore、CountDownLatch 等都复用这套框架。
TCP 三次握手和四次挥手的流程是什么?
TCP 三次握手和四次挥手的流程是什么?这道腾讯牛客题的关键是围绕“TCP 建连与关闭状态机”讲清概念、机制、取舍和边界。TCP 三次握手负责建立连接和同步双方初始序列号;四次挥手负责分别关闭两个方向的字节流。建连关注 SYN、SYN+ACK、ACK 和双方收发能力确认;关闭关注 FIN、ACK、半关闭、CLOSE_WAIT 和 TIME_WAIT。
UDP 丢包通常有哪些原因,如何排查和缓解?
UDP 丢包通常有哪些原因,如何排查和缓解?这道腾讯牛客题的关键是围绕“UDP 丢包排查与缓解”讲清概念、机制、取舍和边界。UDP 丢包原因要从发送端、网络和接收端分层看:应用处理慢、socket buffer 太小、网卡 drops、MTU/IP 分片、网络拥塞、NAT/防火墙、接收端队列溢出都可能导致丢包。
树和堆这两种数据结构有什么区别?
树和堆这两种数据结构有什么区别?这道腾讯牛客题的关键是围绕“树与堆数据结构区别”讲清概念、机制、取舍和边界。树是一类层级数据结构,每个节点可以有子节点;堆通常是满足堆序性质的完全二叉树,是树的一种特殊形式。最大堆父节点不小于子节点,最小堆父节点不大于子节点。
synchronized 锁升级的过程是什么?
synchronized 锁升级的过程是什么?这道腾讯牛客题的关键是围绕“synchronized 锁升级过程”讲清概念、机制、取舍和边界。synchronized 锁升级是 JVM 为不同竞争强度优化 monitor 成本的过程,常见路径是无锁、偏向锁、轻量级锁、重量级锁。现代 JVM 版本对偏向锁支持有所变化,但面试回答仍要说明锁状态随竞争变化而升级。
SQL 语句执行效率低时,如何分析并优化?
SQL 语句执行效率低时,如何分析并优化?这道腾讯牛客题的关键是围绕“SQL 查询优化与索引失效判断”讲清概念、机制、取舍和边界。SQL 慢或大批量查询要按定位、解释、改写、验证的流程处理:先从慢查询日志定位 SQL,再用 EXPLAIN/EXPLAIN ANALYZE 看访问类型、索引、扫描行数、回表、排序和临时表。
JavaScript 数据类型有哪些?堆和栈在存储上有什么区别?
JavaScript 数据类型有哪些?堆和栈在存储上有什么区别?这道腾讯牛客题的关键是围绕“JavaScript 数据类型与堆栈存储”讲清概念、机制、取舍和边界。JavaScript 数据类型可以先分为原始类型和引用类型。原始类型包括 undefined、null、boolean、number、bigint、string、symbol;对象、数组、函数等属于引用类型。堆和栈的区别要从变量绑定和对象存储解释,而不是简单说某个类型绝对在栈上。
DBNet 和 CTC 分别解决 OCR 中的什么问题,核心原理是什么?
这题考 OCR 检测和识别两段核心链路:DBNet 负责把文字区域找出来,CTC 负责在无字符级对齐标注时训练序列识别。
笔记里多个实体和情感词如何抽取实体-情感关系?
这题考面向真实文本的关系抽取方案,重点是先识别实体和情感词,再做候选配对、关系判断和冲突消解。
KG embedding 如何支持 mini-batch 训练,图谱属性缺失怎么处理?
这题考知识图谱表示学习的工程训练能力:mini-batch 训练要处理三元组采样、负采样和邻域依赖,属性缺失要区分未知、不可用和真实为空。
InfoNCE 的温度系数有什么作用?
温度系数控制 InfoNCE 对相似度差异的敏感程度,本质是在调 softmax 分布的尖锐度、梯度强度和难负样本权重。
YOLOv3 的结构、多尺度预测和损失函数是什么,YOLOv4 相比 YOLOv3 有哪些改进?
这题考 YOLO 系列检测器的完整理解:YOLOv3 的 backbone、neck、head、多尺度 anchor 预测、损失组成,以及 YOLOv4 的训练和结构增强。
订单粒度和人车粒度做派单召回有什么区别?
这题考派单系统的召回建模粒度:订单粒度从订单找候选司机,人车粒度从司机或人车状态找候选订单,差异体现在实时性、容量约束和全局匹配效率。
如果资源无限,去掉召回直接全量排序会怎样?
这题不是简单问算力,而是考推荐系统为什么分召回、粗排、精排:全量排序可能提升候选覆盖,但会改变样本分布、模型目标和系统约束。
XGBoost 如何处理缺失值,为什么目标函数要二阶展开?
这题聚焦 XGBoost 两个核心机制:缺失值通过学习默认分裂方向处理,二阶展开用梯度和 Hessian 近似目标函数以高效评估分裂收益。
MTCNN 的模型结构和训练过程是怎样的?
MTCNN 是级联式人脸检测和关键点定位框架,核心是 P-Net、R-Net、O-Net 逐级候选、筛选、精修,并用多任务损失联合训练。
给店铺卖家发放贷款并控制逾期率,特征工程如何设计?
这题考风控特征工程的完整框架:围绕逾期风险定义标签、时间窗口、主体画像、经营现金流、历史履约、异常行为和数据泄漏控制。