2026 Java高级工程师高频面试题(真实面试向+详细落地答案).docxVIP

  • 2
  • 0
  • 约6.23千字
  • 约 8页
  • 2026-06-07 发布于河北
  • 举报

2026 Java高级工程师高频面试题(真实面试向+详细落地答案).docx

2026Java高级工程师高频面试题(真实面试向+详细落地答案)

一、JVM核心高频面试题(高级岗必问)

1.说一下JVM的内存区域划分,哪些是线程私有?哪些是共享?

这是基础但必考的问题,高级岗不会只让背诵分区,重点看是否理解分区作用和线上问题关联。

线程私有(随线程创建销毁,线程隔离):程序计数器、虚拟机栈、本地方法栈。

-程序计数器:唯一没有OOM的内存区域,记录当前线程执行的字节码行号,用于线程切换后恢复执行。

-虚拟机栈:每个方法执行都会创建栈帧,存储局部变量、操作数栈、方法出口等,递归过深、方法调用过多会触发栈溢出。

-本地方法栈:专门给Native方法服务,功能和虚拟机栈类似。

线程共享(全局共享,堆内存问题是线上高频故障点):堆、方法区(元空间)。

-堆:所有对象实例、数组都在这里分配内存,是GC的主要回收区域,频繁出现堆OOM、GC频繁问题。

-方法区(JDK8后彻底替换为元空间):存储类元信息、常量、静态变量、即时编译代码,元空间使用本地内存,不再受JVM堆内存限制,基本不会出现永久代溢出。

面试加分补充(实战踩坑):线上90%的内存溢出、GC卡顿问题,都出自堆内存;栈溢出基本都是代码问题(死递归、循环创建方法调用)。

2.讲讲CMS和G1的核心区别,生产环境怎么选择垃圾收集器?

高级岗必问GC调优问题,不要只背原理,必须说得出适用场景和优缺

文档评论(0)

1亿VIP精品文档

相关文档