Java虚拟机(JVM)元数据区存放的内容

类元数据

元数据区(在HotSpot虚拟机中也称为Metaspace)主要存放了类的元数据信息,如类的名称、访问修饰符、常量池、字段描述、方法描述等。

运行时常量池

运行时常量池是每个类或接口的常量池表的运行时表示形式,包含了若干种不同的常量,从编译期生成的字面量到方法和字段的引用,这些都会在类加载后进入元数据区的运行时常量池。

静态变量

类的静态变量也被存放在元数据区,因为它们是与类相关的,而不是与类的某个特定实例相关的。

JIT编译器编译后的代码

即时编译器(JIT)编译后的代码有时也会存放在元数据区或类似的本地内存区域中。

其他信息

此外,元数据区可能还包含了类的加载器信息、类的结构信息、数组信息等。

在Java 8之前,类的元数据信息是存放在永久代(PermGen)中的,但从Java 8开始,永久代被移除,取而代之的是元数据区(Metaspace)。Metaspace相对于永久代的好处在于,它使用本地内存,因此默认情况下不受Java堆大小的限制,能够更灵活地管理类的元数据信息。

相关推荐
SamDeepThinking6 分钟前
new Thread()之后发生了什么?
java·后端·面试
斯维赤13 分钟前
Spring AI | Function Calling 是什么?
java·后端
devpotato13 分钟前
限流、熔断、降级:三者核心区别一文讲清
java
不灭的黄金瞳12313 分钟前
Java数据类型与变量
java·开发语言·intellij-idea
shehuiyuelaiyuehao17 分钟前
算法47,分治快排,第K大
java
程序猫.18 分钟前
算法刷题笔记:模拟题从入门到实战(含 LeetCode 例题与习题)
java·数据结构·算法
Wang's Blog19 分钟前
Java 服务器: Linux-MySQL的rpm安装与初始化配置
java·服务器
IT枫斗者枫哥22 分钟前
Spring Boot Excel 导入实战:把“导入失败”改成逐行错误报告
java·spring boot
殷紫川24 分钟前
Java 27 九大核心特性解析与实战
java
小白学大数据32 分钟前
Python 项目实战:用 Flask 构建生产级 MySQL 增删改查 REST API
开发语言·人工智能·python·mysql·flask