已解析题目
客户端开发工程师相关题目
如何基于 UDP 实现可靠传输?
如何基于 UDP 实现可靠传输?这道腾讯牛客题的关键是围绕“基于 UDP 的可靠传输设计”讲清概念、机制、取舍和边界。基于 UDP 做可靠传输,本质是在应用层补齐 TCP 的一部分能力:序列号、ACK、超时重传、去重、乱序重排、滑动窗口、流量控制、拥塞控制和 MTU 控制。不能只回答 ACK 加重传。
怎么算出二叉树的深度?
怎么算出二叉树的深度?这道腾讯牛客题的关键是围绕“二叉树深度计算”讲清概念、机制、取舍和边界。二叉树深度可以递归计算:空树深度为 0,非空节点深度为 1 + max(leftDepth, rightDepth)。也可以用 BFS 层序遍历,每处理完一层深度加一。
对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。
UDP 丢包通常有哪些原因,如何排查和缓解?
UDP 丢包通常有哪些原因,如何排查和缓解?这道腾讯牛客题的关键是围绕“UDP 丢包排查与缓解”讲清概念、机制、取舍和边界。UDP 丢包原因要从发送端、网络和接收端分层看:应用处理慢、socket buffer 太小、网卡 drops、MTU/IP 分片、网络拥塞、NAT/防火墙、接收端队列溢出都可能导致丢包。
树和堆这两种数据结构有什么区别?
树和堆这两种数据结构有什么区别?这道腾讯牛客题的关键是围绕“树与堆数据结构区别”讲清概念、机制、取舍和边界。树是一类层级数据结构,每个节点可以有子节点;堆通常是满足堆序性质的完全二叉树,是树的一种特殊形式。最大堆父节点不小于子节点,最小堆父节点不大于子节点。
TCP 如何保证可靠传输?
TCP 可靠传输依赖一组机制共同保证:序列号和确认号负责定位数据,重传机制处理丢包,滑动窗口控制发送节奏,校验和发现损坏,按序交付与去重处理乱序和重复,拥塞控制保护网络稳定。
同题还出现在 1 个公司岗位
synchronized 锁升级的过程是什么?
synchronized 锁升级的过程是什么?这道腾讯牛客题的关键是围绕“synchronized 锁升级过程”讲清概念、机制、取舍和边界。synchronized 锁升级是 JVM 为不同竞争强度优化 monitor 成本的过程,常见路径是无锁、偏向锁、轻量级锁、重量级锁。现代 JVM 版本对偏向锁支持有所变化,但面试回答仍要说明锁状态随竞争变化而升级。