字节跳动后端开发一面面经

字节跳动 · 后端开发 · 一面 · 2026-04

面试题目

理论部分

  1. CPU里的各级存储的速度。
  2. 多核处理器在访问同一资源时可能出现什么问题,怎么预防?
  3. 对Java集合知道哪些,对concurrent的理解。
  4. 分布式里上游调下游服务,路由是怎么确定的?
  5. 对AI agent的理解,开发时整个流程大概什么样?
  6. 操作系统内存管理了解多少,虚拟页表有什么好处?

算法题

  • 力扣 200. 岛屿数量

参考解析

  1. CPU存储层次:寄存器 > L1缓存 > L2缓存 > L3缓存 > 内存。速度随层级下移呈指数级下降,主要通过局部性原理(时间/空间局部性)提升缓存命中率。
  2. 多核并发:可能出现竞态条件、脏读写等。可通过锁(互斥锁、自旋锁)、原子操作(CAS)、内存屏障或无锁数据结构(如Disruptor)进行预防。
  3. Java Concurrent:主要掌握JUC包下的AQS原理、ConcurrentHashMap的分段锁/CAS+synchronized实现、线程池参数及拒绝策略、以及CompletableFuture等异步编排工具。
  4. 分布式路由:常见的有轮询(Round Robin)、加权轮询、一致性哈希(减少节点增删带来的缓存重构)、最少连接数等,可通过网关(如Nginx、Gateway)或服务发现组件(如Nacos、Consul)实现。
  5. 虚拟内存:虚拟内存通过页表映射,实现了进程间的内存隔离,保护了物理内存安全;同时支持内存交换(Swap),使得程序可用内存超过物理内存上限,且内存碎片整理更灵活。