JVM运行时常量池跟静态常量池区别

    最近学习了JVM原理,遇到了运行时常量池的区域定义,他是属于JVM运行时内存模型方法区中的一部分,整体分布以下图:java

 

以下图:总体分布以下学习

而运行、静态常量池是属于方法区的一部分,通常我一般说的是运行时的常量区,他跟静态常量区区别是什么?内存

 

 

 

我的认为,静态常量池是针对每一个被加载进入内存的class文件解析后,存放各个字面量值,符号引用的数据,而运行时常量区就是把全部的静态常量的数据汇总到一块儿(模糊来讲)。class

更底层到汇编层面来讲,内存中的各个数据没有类这个概念,每次都是一个类一个方法的调用,就是至关于寄存器的相对变址寻址过程,变量

(上图中#1 #2等是否就是计算实际地址的符号哪?)原理

运行时方法区就是把每一个类的惟一标识做为他的段地址(DS),而内部的各个变量字段方法等都是偏移地址(BX),等到真正入栈执行时候这些字段方法的相对定位符等被解析成为真正的地址,从而进入CS IP被识别执行;那么进一步猜测java的权限包的概念是否也能够由此获得所有的类信息汇总后进行进一步控哪权限

相关文章
相关标签/搜索