面经分享 攒人品
《面试题目》
- 4月 快手安全工程师-java方向一面
- TCP和UDP的区别
- TCP和UDP能否支持一对多发送
- 如何让UDP变得可靠
- TCP3次握手是怎样的 如果两次会发生什么
- 当我在浏览器输入一个url后发生了什么
- Java虚拟机内部分区,每个分区的功能
- 如何识别哪些对象需要被垃圾回收
- 如果一对象指向GC Roots 那他会被回收吗
- 了解前端吗
- 讲一下Spring的AOP
- 介绍一下Java的泛型 泛型擦除
- 消息队列如何实现顺序消费
- 使用Ai工具有没有形成自己的范式
- 手撕: Hot100原题 二叉树的最近公共祖先
《参考解析》
-
计算机网络:TCP(传输控制协议)是面向连接、可靠的传输协议,提供流量控制和拥塞控制;UDP(用户数据报协议)是无连接、不可靠但速度更快的协议。TCP通过三次握手建立连接(SYN→SYN+ACK→ACK),四次挥手断开(FIN→ACK→FIN→ACK)。
-
Spring框架:Spring IoC容器管理Bean生命周期,核心是依赖注入(DI)。AOP面向切面编程通过动态代理(JDK/CGLIB)实现横切关注点(日志/事务/权限)。Spring事务传播行为:REQUIRED(加入现有或新建)、REQUIRES_NEW(挂起当前,新建)、NESTED(嵌套事务)等。
-
JVM与GC:JVM内存模型:堆(对象分配,GC管理)、方法区(类信息、常量池)、虚拟机栈(栈帧/局部变量/操作数栈)、本地方法栈、程序计数器。GC算法:标记-清除(内存碎片)、标记-整理(无碎片,但移动对象)、复制(新生代)。G1按Region划分堆,预测停顿时间。
-
消息队列:消息队列解决异步解耦、流量削峰。消息可靠性:生产者confirm确认;Broker持久化;消费者手动ACK。幂等性:消费端通过唯一ID+Redis或DB乐观锁实现。顺序消息:同一业务Key路由到同一分区/Queue,单线程消费。消息积压:扩消费者+增加分区+临时跳过非关键消息。