得物 JAVA开发 二面

#JAVA##JAVA面经##JAVA内推#

1. 死锁排查时,你最常用的JDK命令是什么?

回答思路

  • 锚定核心命令:优先选最直接、高频的 jstack(JVM 堆栈跟踪工具);
  • 解释核心逻辑:jstack <进程ID> 可打印线程堆栈信息,其中会明确标注「Deadlock」死锁位置,以及死锁线程持有的锁、等待的锁;
  • 补充辅助命令:可提 jps(查进程ID)、jconsole/jvisualvm(可视化工具),但核心是 jstack
  • 举例:执行 jstack 12345 > deadlock.log,在日志中搜索「Deadlock」定位死锁线程及锁资源;
  • 核心结论:最常用 jstack,直接输出线程堆栈和死锁信息,是排查死锁的核心命令。

标准答案 最常用的是 jstack 命令。通过 jstack <进程ID> 打印线程堆栈信息,日志中会明确标注死锁(Deadlock)相关线程、持有的锁和等待的锁,能快速定位死锁原因;辅助用 jps 先获取进程ID。

2. 线程WAITING状态和TIMED_WAITING状态最核心的区别是什么?

回答思路

  • 锚定核心维度:是否有等待超时时间
  • 拆解区别: ✅ WAITING(无限等待):线程等待被其他线程显式唤醒(如 Object.wait()LockSupport.park()),无超时时间,若不被唤醒会永久等待; ✅ TIMED_WAITING(计时等待):线程等待有明确超时时间(如 Object.wait(1000)Thread.sleep(1000)LockSupport.parkNanos()),超时后自动唤醒;
  • 举例:obj.wait() 进入 WAITING,需 obj.notify() 唤醒;obj.wait(3000) 进入 TIMED_WAITING,3秒后自动唤醒;
  • 核心结论:核心是是否有超时时间,WAITING 无限等待需显式唤醒,TIMED_WAITING 超时自动唤醒。

标准答案 核心区别是「是否有等待超时时间」:WAITING 是无限等待状态,需其他线程显式唤醒(如 notify());TIMED_WAITING 是计时等待,有明确超时时间,超时后线程自动唤醒,无需显式通知。

3. URL请求过程中,DNS解析的核心作用是什么?

回答思路

  • 锚定核心:域名与IP地址的映射转换
  • 解释逻辑:
    1. 网络通信基于IP地址,但用户输入的是域名(如 www.baidu.com),DNS解析将域名转换为对应的IP地址;
    2. 核心是解决「域名易记但无法直接通信,IP可通信但难记忆」的矛盾;
  • 补充:DNS解析是分层缓存的(本地→运营商→根服务器),提升解析效率;
  • 核心结论:核心作用是将易记的域名转换为可用于网络通信的IP地址,建立域名到IP的映射。

标准答案 DNS解析的核心作用是将用户输入的域名(如 www.baidu.com)转换为对应的IP地址。因为网络通信依赖IP地址,而域名仅为方便记忆,DNS解析是实现域名访问的核心环节。

4. 服务端处理请求时,Tomcat的Connector组件核心职责是什么?

回答思路

  • 锚定核心定位:Tomcat的通信入口,负责网络连接与协议解析
  • 拆解职责:
    1. 监听指定端口(如8080),接收客户端的TCP连接;
    2. 解析HTTP协议(请求行、请求头、请求体),将原始字节流转换为Tomcat内部的 Request/Response 对象;
    3. 将解析后的请求交给Engine/Host/Context等容器处理,处理完成后将响应转换为字节流返回给客户端;
  • 举例:客户端发送HTTP请求,Connector先接收连接、解析请求参数,再交给Servlet处理;
  • 核心结论:核心是监听端口、处理网络连接、解析HTTP协议,是Tomcat与客户端通信的核心桥梁。

标准答案 Connector是Tomcat处理网络请求的核心组件,核心职责是:监听指定端口接收客户端TCP连接,解析HTTP协议(将字节流转为Request对象),将请求转发给Tomcat容器处理,最终将响应转换为字节流返回给客户端。

5. 负载均衡中,轮询算法的核心缺陷是什么?

回答思路

  • 锚定核心缺陷:未考虑后端服务器的性能/负载差异,导致负载不均
  • 解释逻辑:
    1. 轮询算法按固定顺序(如服务器A→B→C→A)分配请求,假设A性能差(CPU 100%)、C性能好(CPU 10%),仍会均分请求;
    2. 缺陷导致:性能差的服务器堆积请求,响应慢;性能好的服务器资源闲置,整体集群吞吐量下降;
  • 补充:对比加权轮询(优化方案),但核心说轮询的缺陷;
  • 核心结论:核心缺陷是无差别分配请求,忽略后端服务器的性能、负载、健康状态差异,导致集群负载不均衡。

标准答案 轮询算法的核心缺陷是「无差别分配请求」:仅按固定顺序轮流分发请求,未考虑后端服务器的性能、当前负载、健康状态差异,导致性能差的服务器堆积请求,性能好的服务器资源闲置,整体负载不均衡。

6. 设计RPC框架时,序列化模块最优先考虑的因素是什么?

回答思路

  • 锚定核心因素:序列化后的体积 + 序列化/反序列化效率 + 兼容性(优先「效率+体积」);
  • 解释逻辑:
    1. RPC核心是跨网络传输数据,序列化体积小→网络IO少,效率高→接口响应快;
    2. 兼容性(如跨语言、跨版本)是基础,但优先保证性能(体积+效率),否则会成为RPC性能瓶颈;
  • 举例:对比JSON(体积大、效率低)和Protobuf(体积小、效率高),RPC框架优先选Protobuf;
  • 核心结论:最优先考虑「序列化/反序列化效率」和「序列化后的数据体积」,这是决定RPC传

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏

全部评论
拼多多招27届实习生啦 https://careers.pddglobalhr.com/campus/intern/detail?t=dRvUVvcTiA
点赞 回复 分享
发布于 03-23 10:58 上海
27届拼多多实习机会或看我主页 https://careers.pddglobalhr.com/campus/intern?t=4OmKPVeX9a
点赞 回复 分享
发布于 03-12 15:33 上海
Mybatis拦截器能拦截的核心对象中,Executor的作用描述的很详细
点赞 回复 分享
发布于 03-11 15:36 湖南

相关推荐

03-20 10:04
湖南大学
一、Java基础1.&nbsp;HashMap底层原理数组+链表+红黑树,JDK1.8后引入红黑树。初始容量16,负载因子0.75,扩容为原来2倍。线程不安全,多线程推荐使用ConcurrentHashMap。2.&nbsp;ConcurrentHashMap&nbsp;1.7和1.8区别1.7:Segment分段锁+数组+链表,锁粒度较大。1.8:CAS+synchronized,数组+链表+红黑树,锁粒度更细,性能更高。3.&nbsp;ArrayList和LinkedList区别ArrayList:动态数组,查询快,增删慢。LinkedList:双向链表,查询慢,增删快。4.&nbsp;String、StringBuilder、StringBufferString不可变,线程安全。StringBuilder可变,非线程安全,效率最高。StringBuffer可变,线程安全,效率较低。二、并发编程5.&nbsp;synchronized底层实现修饰方法:ACC_SYNCHRONIZED标识。修饰代码块:monitorenter、monitorexit指令。锁升级流程:无锁→偏向锁→轻量级锁→重量级锁。6.&nbsp;ReentrantLock和synchronized区别ReentrantLock:手动加锁解锁,支持可中断、超时、公平锁。synchronized:自动加锁解锁,使用简单。7.&nbsp;线程生命周期新建、就绪、运行、阻塞、终止。8.&nbsp;死锁四个必要条件互斥、请求保持、不可剥夺、循环等待。破坏任一条件即可避免。三、JVM9.&nbsp;JVM内存模型堆、方法区、虚拟机栈、本地方法栈、程序计数器。10.&nbsp;垃圾回收机制对象存活判断:引用计数法、可达性分析法。回收算法:标记清除、标记复制、标记整理。11.&nbsp;常见垃圾收集器Serial、ParNew、Parallel&nbsp;Scavenge、CMS、G1。四、计算机基础12.&nbsp;TCP三次握手、四次挥手三次握手:建立可靠连接。四次挥手:断开连接,保证数据传输完成。13.&nbsp;HTTP和HTTPS区别HTTP明文传输,端口80。HTTPS加密传输,端口443,基于SSL/TLS。14.&nbsp;MySQL索引底层B+树,分为聚簇索引和非聚簇索引。遵循最左匹配原则,避免索引失效。15.&nbsp;MySQL事务ACID原子性、一致性、隔离性、持久性。五、项目与场景16.&nbsp;接口限流方案计数器、漏桶算法、令牌桶算法。17.&nbsp;分布式锁实现Redis分布式锁、Zookeeper分布式锁。18.&nbsp;Redis缓存问题缓存穿透:布隆过滤器。缓存击穿:互斥锁、热点数据永不过期。缓存雪崩:过期时间随机、集群部署、服务降级。
查看18道真题和解析
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务