面经分享 攒人品

快手 · 前端开发工程师 · 一面 · 天津 · 2026-05

《面试题目》

  1. 4月 快手安全工程师-java方向一面
  2. TCP和UDP的区别
  3. TCP和UDP能否支持一对多发送
  4. 如何让UDP变得可靠
  5. TCP3次握手是怎样的 如果两次会发生什么
  6. 当我在浏览器输入一个url后发生了什么
  7. Java虚拟机内部分区,每个分区的功能
  8. 如何识别哪些对象需要被垃圾回收
  9. 如果一对象指向GC Roots 那他会被回收吗
  10. 了解前端吗
  11. 讲一下Spring的AOP
  12. 介绍一下Java的泛型 泛型擦除
  13. 消息队列如何实现顺序消费
  14. 使用Ai工具有没有形成自己的范式
  15. 手撕: Hot100原题 二叉树的最近公共祖先

《参考解析》

  1. 计算机网络:TCP(传输控制协议)是面向连接、可靠的传输协议,提供流量控制和拥塞控制;UDP(用户数据报协议)是无连接、不可靠但速度更快的协议。TCP通过三次握手建立连接(SYN→SYN+ACK→ACK),四次挥手断开(FIN→ACK→FIN→ACK)。

  2. Spring框架:Spring IoC容器管理Bean生命周期,核心是依赖注入(DI)。AOP面向切面编程通过动态代理(JDK/CGLIB)实现横切关注点(日志/事务/权限)。Spring事务传播行为:REQUIRED(加入现有或新建)、REQUIRES_NEW(挂起当前,新建)、NESTED(嵌套事务)等。

  3. JVM与GC:JVM内存模型:堆(对象分配,GC管理)、方法区(类信息、常量池)、虚拟机栈(栈帧/局部变量/操作数栈)、本地方法栈、程序计数器。GC算法:标记-清除(内存碎片)、标记-整理(无碎片,但移动对象)、复制(新生代)。G1按Region划分堆,预测停顿时间。

  4. 消息队列:消息队列解决异步解耦、流量削峰。消息可靠性:生产者confirm确认;Broker持久化;消费者手动ACK。幂等性:消费端通过唯一ID+Redis或DB乐观锁实现。顺序消息:同一业务Key路由到同一分区/Queue,单线程消费。消息积压:扩消费者+增加分区+临时跳过非关键消息。