公司岗位题库

腾讯 客户端面经

17 道题 19 个标签 17 条出现记录

客户端开发工程师相关题目

如何基于 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 版本对偏向锁支持有所变化,但面试回答仍要说明锁状态随竞争变化而升级。