已解析题目
客户端开发工程师相关题目
Objective-C和Swift对比,安全性体现在什么方面?
Swift相对Objective-C的安全性,核心不是“更防黑客”,而是语言层面对类型、空值、内存、可变状态、错误处理和并发访问施加了更多编译期约束,把一部分Objective-C中常见的运行时崩溃、野指针、nil误用、类型误判和共享状态问题提前暴露。但Swift并不是绝对安全:强制解包、隐式解包、Any、unsafe pointer、Objective-C桥接、@objc动态派发和不当并发仍然会把风险带回来。
一个单向链表,奇数节点是升序、偶数节点是降序,怎么样将链表转变成降序的链表?
这道题的关键不是排序整个链表,而是利用题目已经给出的局部有序性:按位置拆出奇数位链表和偶数位链表。奇数位本身升序,反转后变成降序;偶数位本身已经降序;最后对两条降序链表做一次归并即可。
如何手写 LRU 缓存?
这题是典型手写实现题,关键是用 HashMap 加双向链表在 O(1) 完成查询、更新、移动和淘汰,并处理已有 key、容量边界和 map/list 同步。
同题还出现在 1 个公司岗位
进程与线程区别?
进程是操作系统进行资源分配、隔离和保护的基本单位,线程是进程内部的执行流,通常是 CPU 调度的基本单位。进程之间默认拥有独立虚拟地址空间和资源边界,隔离更强;同一进程内多个线程共享地址空间、堆、代码段、打开文件等资源,但各自拥有独立寄存器上下文、栈、线程局部存储和调度状态。
https,客户端拿到服务端的证书后是怎么验证证书的合法性?
HTTPS 证书合法性验证的本质,是确认服务端公钥可信地属于当前访问的域名。客户端会构建证书链、逐级验证签名、确认根 CA 受信任,再检查域名、有效期、用途、吊销状态和握手签名绑定。
TCP如何识别断开?
TCP 识别断开依赖报文、应用读写行为和超时机制共同完成。正常关闭通常通过 FIN 体现,应用读到 0;异常关闭常见为 RST,读写报错;静默断链不会立刻被发现,需要 keepalive、应用层心跳和业务超时兜底。
为什么 TCP 建立连接需要三次握手?
TCP 三次握手的目的不是单纯通知双方在线,而是让双方确认彼此的发送和接收能力、同步初始序列号、协商连接参数,并避免历史重复连接请求造成错误连接。两次握手无法可靠完成这些目标。
同题还出现在 2 个公司岗位