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

类元数据

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

运行时常量池

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

静态变量

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

JIT编译器编译后的代码

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

其他信息

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

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

相关推荐
浅时光_c3 分钟前
12 指针
c语言·开发语言
七夜zippoe3 分钟前
Spring Cloud与Dubbo架构哲学对决
java·spring cloud·架构·dubbo·配置中心
海派程序猿4 分钟前
Spring Cloud Config拉取配置过慢导致服务启动延迟的优化技巧
java
charlie1145141916 分钟前
嵌入式现代C++工程实践——第10篇:HAL_GPIO_Init —— 把引脚配置告诉芯片的仪式
开发语言·c++·stm32·单片机·c
call me by ur name8 分钟前
ERNIE 5.0 Technical Report论文解读
android·开发语言·人工智能·机器学习·ai·kotlin
dog2508 分钟前
细看高维空间中距离度量失效
开发语言·php
码云数智-大飞11 分钟前
Rust的所有权模型如何消除内存安全问题?与C++的RAII有何异同?
开发语言
如意猴14 分钟前
【前端】002--怎样制作一个简历界面?
开发语言·前端·javascript
阿维的博客日记14 分钟前
为什么不逃逸代表不需要锁,JIT会直接删掉锁
java
William Dawson16 分钟前
CAS的底层实现
java