- 1
- 0
- 约5.82千字
- 约 8页
- 2026-08-24 发布于河北
- 举报
Java底层核心面试题(含详细真实面试版答案)
一、Java基础与JVM底层
1、谈谈你对JVM内存模型(运行时数据区)的理解,各区域的作用和特点?
JVM运行时数据区分为线程私有和线程共享两部分,是Java程序运行的核心内存结构,各区域职责明确:
线程私有区域(随线程创建销毁,线程隔离)
1)程序计数器:当前线程执行的字节码行号指示器,记录代码执行位置,是唯一一个没有OOM的内存区域。线程切换后通过该寄存器恢复执行位置。
2)虚拟机栈:每个方法执行都会创建一个栈帧,存储局部变量表、操作数栈、动态链接、方法出口。基本数据类型、对象引用都存在这里。栈内存固定,递归过深、方法调用过多会出现栈溢出(StackOverflowError)。
3)本地方法栈:专门为JVM调用的Native方法服务,作用和虚拟机栈类似,负责本地方法的栈帧存储,同样会发生栈溢出。
线程共享区域(全局共享,JVM启动创建,关闭销毁)
1)堆内存:所有对象实例、数组都在堆中分配,是GC回收的主要区域。分为新生代、老年代,部分JVM包含元空间对应的堆划分。堆内存不足会抛出OOM。
2)方法区:存储类信息、常量、静态变量、即时编译后的代码缓存。JDK8之前是永久代,JDK8及之后彻底废弃永久代,改用元空间,元空间使用本地内存,不再占用堆内存,大幅降低类加载过多导致的OOM。
3)运行时常量池:属于方法区的一部分,存放
您可能关注的文档
- Java安全高频面试题及详细答案(真实面试版).docx
- Java编程基础笔试题(含详细答案解析).docx
- Java测试工程师面试真题(无模板实战版).docx
- Java多态笔试真题(含详细答案解析).docx
- Java多态高频面试题(真实面试版).docx
- Java多线程高频面试题及答案(真实面试版).docx
- Java多线程高频面试题及详细答案(实战版).docx
- Java多线程经典笔试题(含答案·企业真实版).docx
- Java多线程经典笔试题(含详细答案,实战向).docx
- Java多线程经典笔试题(含详细答案解析).docx
- 2026年湖南省人教版四年级英语下册第10单元写作技巧指导课件.pptx
- 2026年陕西省中考物理电学课件.pptx
- 2026年人教版高中历史必修一第4章抗日战争赛前培训课件.pptx
- 2026年江苏省人教版九年级英语下册第10单元口语交际训练课件.pptx
- 2026年政治考研时政热点解析与复习课件.pptx
- 2026年信息安全意识考核要点精讲课件.pptx
- 2026年广东省部编版九年级历史下册第5单元中国近现代史课件.pptx
- 2026年北师大版初中历史八年级下册第7单元文化传承课件.pptx
- 2026年人教版高一历史必修一第8单元近代史课件.pptx
- 2026年人教版高一历史必修一第7单元明清时期课件.pptx
原创力文档

文档评论(0)