JVM体系结构(运行时数据区)初解

JVM体系结构(运行时数据区)初解

JVM是一个抽象的概念,它是一个规范

我们主要要了解的是 JVM规范中的 运行时数据区

各区域:

  • 程序计数器:存放下一次执行的字节码指令
  • 虚拟机栈:调用普通方法时压栈出栈,存放调用方法的栈帧,内部有局部变量表和操作数栈、动态连接以及方法出口;可能抛出 StackOverflowError、OutOfMemoryError
  • 本地方法栈:调用本地方法时的压栈出栈。(C++)写的动态链接库,举个例子:在Object类中查找本地方法 hashcode(); 方法。
  • 堆:new 出的对象和数组存放的地方。是GC的主要区域
  • 方法区:类元信息(类结构、字段、方法)、常量、静态变量
  • 运行时常量池:主要就是 符号引用、字面量

而Java虚拟机规范也有许多的具体实现,其中最为出名的就是 HotSpot

jdk6 下的 HotSpot实现

jdk7(过渡版本)下的HotSpot实现

jdk8 下的 HotSpot实现

相关推荐
白鲸开源13 小时前
Apache SeaTunnel Zeta Engine 的 Basic Auth 是怎么工作的?
java·vue.js·github
白鲸开源13 小时前
一文读懂DolphinScheduler插件机制:如何轻松扩展任务类型与数据源
java·架构·github
用户2986985301418 小时前
Java 实现 Word 文档文本查找与高亮标注
java·后端
宇宙之一粟18 小时前
乐企版式文件生成平台
java·后端·python
plainGeekDev19 小时前
MVC 写法 → MVVM
android·java·kotlin
SL_staff19 小时前
3周搭完MES系统:JVS低代码+JVS-IoT物联网的实战记录
java·前端·低代码
MacroZheng19 小时前
斩获20w star!Claude Code最强插件,AI编程必备!
java·人工智能·后端
唐青枫21 小时前
Java Spring WebFlux 实战指南:用 Mono、Flux 和 WebClient 写响应式接口
java·spring
小bo波1 天前
使用Thread子类创建线程 VS 使用Runnable接口创建线程的区别
java·多线程·thread·并发编程·runnable
SamDeepThinking1 天前
高并发场景下,CompletableFuture与ForkJoinPool该如何取舍?
java·后端·面试