JVM中的方法区
2023-09-27 14:26:42 时间
JVM中的方法区
方法区存储什么?
- 用于存储已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存
1、类型信息
- 对每个加载的类型(类class、接口interface、枚举、注解)jvm必须在方法区中存储下边类型信息
- 这个类型的完整有效名
- 这个类型直接父类的完整有效名
- 这个类型的修饰符(public、abstract、final的某个子集)
- 这个类型直接接口的一个有序列表
2、方法信息
- JVM必须保存所有方法的以下信息
- 方法名称
- 方法参数的数量和类型
- 方法的修饰符
- 方法的字节码、操作数栈、局部变量表、
- 异常表
- 与java堆一样、各个线程共享的内存区域
- 在JVM启动的时候创建
- 方法区的大小,和堆空间一样,可以选择固定或者可扩展
- 大小决定了系统可以保存多少个类
常量池和常量池表
常量池:存储的数据类型(数量值、字符串值、类引用、字段引用、方法引用)
运行时常量池:
- 方法区的一部分
- 常量池表是class文件的一部分,用于存放编译期间生存的各种字面量与符号引用,在类加载后放到方法区的运行时常量池中。
- 具备动态性
- 符号引用(栈帧中的动态链接)
常量池表(存放在运行时常量池中):一个有效的字节码文件中除了包含类的版本信息、字段、方法、以及接口等描述信息外,还包含一项信息就是常量池表,包括各种字面量和对类型、域和方法的符号引用。
栈、堆、方法区交互
相关文章
- JVM04-JVM中内存溢出(包括内存泄露)以及其处理方法
- 【JVM · 调优】常用参数 & 垃圾回收
- 您的浏览器没有获得Java Virtual Machine(JVM)支持。可能由于没有安装JVM或者已安装但是没有启用。请安装JVM1.5或者以上版本,如果已安装则启用它。
- JVM 堆外内存查看方法
- JVM 线上故障排查基本操作--内容问题排查
- [二]Java虚拟机 jvm内存结构 运行时数据内存 class文件与jvm内存结构的映射 jvm数据类型 虚拟机栈 方法区 堆 含义
- 使用System.getProperty方法,如何配置JVM系统属性
- JVM 内部原理系列
- 6 款 Java 8 自带工具,轻松分析定位 JVM 问题!
- JVM 内存对象管理
- JVM 垃圾回收机制
- JVM内存—堆(heap)栈(stack)方法区(method) (转)
- JVM垃圾回收器
- 【jvm我能讲两小时064】G1收集器垃圾回收的步骤?
- 【jvm我能讲两小时032】方法区主要存储的是什么数据?
- 【jvm我能讲两小时028】jvm中方法调用的2种形式?