岗位索引

客户端开发工程师面试题库

客户端开发面试题解析,覆盖移动端、系统基础、网络、崩溃排查和工程实践。

38 道题 5 个公司 38 个知识点

客户端相关面试题

HTTPS 为什么结合使用对称加密和非对称加密?

HTTPS 同时使用非对称加密和对称加密,是为了兼顾安全密钥交换、身份认证和传输性能。非对称加密适合解决陌生双方如何安全协商密钥和验证服务器身份的问题,但计算成本高;对称加密速度快,适合保护大量业务数据,因此握手阶段协商会话密钥,传输阶段用对称密钥加密数据。

Objective-C和Swift对比,安全性体现在什么方面?

Swift相对Objective-C的安全性,核心不是“更防黑客”,而是语言层面对类型、空值、内存、可变状态、错误处理和并发访问施加了更多编译期约束,把一部分Objective-C中常见的运行时崩溃、野指针、nil误用、类型误判和共享状态问题提前暴露。但Swift并不是绝对安全:强制解包、隐式解包、Any、unsafe pointer、Objective-C桥接、@objc动态派发和不当并发仍然会把风险带回来。

进程与线程区别?

进程是操作系统进行资源分配、隔离和保护的基本单位,线程是进程内部的执行流,通常是 CPU 调度的基本单位。进程之间默认拥有独立虚拟地址空间和资源边界,隔离更强;同一进程内多个线程共享地址空间、堆、代码段、打开文件等资源,但各自拥有独立寄存器上下文、栈、线程局部存储和调度状态。

如何基于 UDP 实现可靠传输?

如何基于 UDP 实现可靠传输?这道腾讯牛客题的关键是围绕“基于 UDP 的可靠传输设计”讲清概念、机制、取舍和边界。基于 UDP 做可靠传输,本质是在应用层补齐 TCP 的一部分能力:序列号、ACK、超时重传、去重、乱序重排、滑动窗口、流量控制、拥塞控制和 MTU 控制。不能只回答 ACK 加重传。

对TCP的理解,有哪些特点?

对TCP的理解,有哪些特点?这道腾讯牛客题的关键是围绕“TCP 协议职责与特点”讲清概念、机制、取舍和边界。TCP 是传输层面向连接的可靠字节流协议,主要职责是为应用层提供可靠、有序、无重复的双向字节流,并通过流量控制和拥塞控制适配接收端与网络能力。

Http与Https的区别,Https是如何保证数据安全的?

Http与Https的区别,Https是如何保证数据安全的?这道腾讯牛客题的关键是围绕“HTTP、HTTPS 与 TLS 安全链路”讲清概念、机制、取舍和边界。HTTP 是明文应用层协议,HTTPS 是 HTTP 运行在 TLS 之上。TLS 通过证书链验证服务器身份,通过密钥交换协商会话密钥,后续数据主要用对称加密传输,同时用完整性校验防止篡改。

什么是动态规划?

什么是动态规划?这道腾讯牛客题的关键是围绕“动态规划定义与解题框架”讲清概念、机制、取舍和边界。动态规划适合具有最优子结构和重叠子问题的问题。回答时要讲清状态定义、转移方程、初始化、遍历顺序和结果位置,而不是先展开 DP 与贪心对比。

链表如何插入节点?

链表如何插入节点?这道腾讯牛客题的关键是围绕“链表节点插入流程”讲清概念、机制、取舍和边界。链表插入节点的核心是先保存后继,再改新节点和前驱的指针。单链表在已知前驱节点 prev 时,可以让 newNode.next = prev.next,再让 prev.next = newNode。

进程的虚拟地址是怎么分区的?

进程的虚拟地址是怎么分区的?这道腾讯牛客题的关键是围绕“进程虚拟地址空间分区”讲清概念、机制、取舍和边界。进程虚拟地址空间通常包括代码段 text、只读数据 rodata、已初始化数据 data、未初始化数据 bss、堆 heap、mmap 区、用户栈 stack 和内核空间映射边界。

TCP 协议具体是干嘛的?

TCP 协议具体是干嘛的?这道腾讯牛客题的关键是围绕“TCP 协议职责与特点”讲清概念、机制、取舍和边界。TCP 是传输层面向连接的可靠字节流协议,主要职责是为应用层提供可靠、有序、无重复的双向字节流,并通过流量控制和拥塞控制适配接收端与网络能力。

一个 UDP 包最多能装多少数据?

一个 UDP 包最多能装多少数据?这道腾讯牛客题的关键是围绕“UDP 报文大小与 MTU”讲清概念、机制、取舍和边界。一个 UDP 包理论 payload 最大值常说 IPv4 下 65507 字节,即 IP 总长度 65535 减 20 字节 IPv4 头和 8 字节 UDP 头。但工程上不能按这个值发送,实际要受链路 MTU、IP 分片、IPv6 最小 MTU、丢包和应用延迟约束。

String与StringBuffer的区别,StringBuffer如何实现线程安全的?

String与StringBuffer的区别,StringBuffer如何实现线程安全的?这道腾讯牛客题的关键是围绕“String、StringBuffer 与线程安全”讲清概念、机制、取舍和边界。String 是不可变对象,拼接会产生新对象或由编译器优化;StringBuffer 是可变字符序列,核心方法带 synchronized,因此同一实例的修改具备互斥;StringBuilder 也是可变字符序列,但不做同步,单线程更快。

进程线程区别?

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

进程间通信方式?

进程间通信方式?这道腾讯牛客题的关键是围绕“进程间通信方式”讲清概念、机制、取舍和边界。进程间通信方式包括匿名管道、命名管道 FIFO、消息队列、共享内存、信号量、信号、Unix domain socket、TCP socket、mmap 和文件锁。选择取决于是否亲缘进程、吞吐、延迟、同步需求和是否跨机器。

TCP 三次握手和四次挥手的流程是什么?

TCP 三次握手和四次挥手的流程是什么?这道腾讯牛客题的关键是围绕“TCP 建连与关闭状态机”讲清概念、机制、取舍和边界。TCP 三次握手负责建立连接和同步双方初始序列号;四次挥手负责分别关闭两个方向的字节流。建连关注 SYN、SYN+ACK、ACK 和双方收发能力确认;关闭关注 FIN、ACK、半关闭、CLOSE_WAIT 和 TIME_WAIT。

树和堆这两种数据结构有什么区别?

树和堆这两种数据结构有什么区别?这道腾讯牛客题的关键是围绕“树与堆数据结构区别”讲清概念、机制、取舍和边界。树是一类层级数据结构,每个节点可以有子节点;堆通常是满足堆序性质的完全二叉树,是树的一种特殊形式。最大堆父节点不小于子节点,最小堆父节点不大于子节点。

synchronized 锁升级的过程是什么?

synchronized 锁升级的过程是什么?这道腾讯牛客题的关键是围绕“synchronized 锁升级过程”讲清概念、机制、取舍和边界。synchronized 锁升级是 JVM 为不同竞争强度优化 monitor 成本的过程,常见路径是无锁、偏向锁、轻量级锁、重量级锁。现代 JVM 版本对偏向锁支持有所变化,但面试回答仍要说明锁状态随竞争变化而升级。

图像滤波如何通过卷积实现,如何从频域理解低频平滑和高频边缘信息?

图像滤波可以从空间域和频域两条线理解:空间域里,卷积核在局部邻域加权求和,改变每个像素与周围像素的关系;频域里,卷积等价于频谱相乘,滤波器是在保留或抑制不同频率成分。低频通常对应缓慢变化的亮度和大块结构,低通滤波会平滑噪声和细节;高频通常对应边缘、纹理和突变,高通或梯度滤波会强化轮廓但也可能放大噪声。

大语言模型的参数量具体指什么,如何估算一个 Transformer Block 的参数规模?

这道题考察模型参数量的数量级推导能力。参数量是可训练权重标量的数量,不等于显存、FLOPs 或上下文长度。好答案要能用 hidden size、FFN 中间维度、层数、词表大小估算一个 Transformer block,并说明 GQA/MQA、SwiGLU、MoE、权重共享、LoRA 和量化对成本含义的影响。