常量池、perm(持久代)、方法区、栈
来源:互联网 发布:telnet 端口打开失败 编辑:程序博客网 时间:2024/06/05 12:04
常量池、perm(持久代)、方法区、栈
常量池指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。除了包含代码中所定义的各种基本类型(如:int、long等等)和对象型(如String及数组)的常量值(final)还包含一些以文本形式出现的符号引用,比如:
#类和接口的全限定名 #字段的名称的描述符 #方法和名称的描述符
虚拟机必须为每个被装载的类型维护一个常量池。常量池就是该类型所用到常量的一个有序集合,包括直接常量(string,integer和floating常量)和对其他类型,字段和方法的符号引用。对于String常量,它的值在常量池中的。而JVM中的常量池在内存当中是以表的形式存在的,对于String类型,有一张固定长度的CONSTANT_String_info表用来存储文字字符串值,注意:该表只存储文字字符串值,不存储符号引用。
$$在程序执行的时候,常量池会储存在Method Area,而不是堆中
JVM构成:类装载子系统运行时数据区 方法区 堆(heap) Java栈(stack) PC寄存器 本地方法栈执行引擎
方法区和持久代的关系:
方法区物理上存在于堆里,而且是在堆的持久代里面;但在逻辑上,方法区和堆是独立的。一般说堆的持久代就是说方法区,因为一旦JVM把方法区(类信息,常量池,静态字段,方法)加载进内存以后,这些内存一般是不会被回收的了。
0 0
- 常量池、perm(持久代)、方法区、栈
- java堆、栈、方法区、常量池
- java堆、栈、方法区、常量池
- Java堆、栈、方法区、常量池
- java堆、栈、方法区、常量池
- java堆、栈、方法区、常量池
- java堆的大小包括加上方法区(持久代)的大小吗
- 一个perm永久代溢出排查过程
- 方法区和常量池
- jvm 年轻代、年老代、持久代
- jvm 年轻代、年老代、持久代
- perm
- Perm
- 栈、堆、方法区、常量池、内存回收
- Java中的栈,堆,方法区和常量池
- java 内存 堆 栈 方法区 常量池
- Java堆、栈、方法区、常量池(转载)
- jvm-方法区(常量池)
- 二叉树的深度,递归和非递归实现
- OC之点语法详解
- 用Python的requests库作接口测试——对响应进行迭代
- PlayerPrefs 游戏存档
- SpringMVC源码剖析(五)-消息转换器
- 常量池、perm(持久代)、方法区、栈
- gobject type system
- 基于Linux CentOS的Python科学计算环境搭建
- UltraEdit破解方法
- CvMemStorage *storage=cvCreateMemStorage()
- java sound
- XML工具类
- 关于Android项目成功运行但是有error报错
- 【bzoj1284】【HNOI2004】【树的计数】【组合数学+prufer数列】