JVM-方法区

Posted 四猿外

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM-方法区相关的知识,希望对你有一定的参考价值。

方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。

在Class 文件中除了类的字段、方法、接口等描述信息外,还有一项信息是常量池,用来存储编译期间生成的字面量和符号引用。

方法区还有一块内存,运行时常量池,它是每一个类或接口的常量池的运行时表示形式,在类和接口被加载到JVM 后,对应的运行时常量池就被创建出来。当然并非Class文件常量池中的内容才能进入运行时常量池,在运行期间也可将新的常量放入运行时常量池中,比如String 的intern 方法。

在JVM 规范中,没有强制要求方法区必须实现垃圾回收。很多人习惯将方法区称为“永久代”,是因为HotSpot 虚拟机以永久代来实现方法区,从而JVM 的垃圾收集器可以像管理堆区一样管理这部分区域,从而不需要专门为这部分设计垃圾回收机制。不过自从JDK7之后,Hotspot 虚拟机便将运行时常量池从永久代移除了。

以上是关于JVM-方法区的主要内容,如果未能解决你的问题,请参考以下文章

JVM运行时数据区篇(方法区基本概述)

JVM中的方法区

JVM运行时数据区篇(方法区进阶掌握)

java线程存放在jvm的哪个区域?方法又存放在哪个区呢?

JVM方法区到底是什么

JVM:方法区