大家基本上都知道 Java 的虚拟机含了。
堆 (heap)方法区 (method Area) 虚拟机栈(VM STACK) 本地方法栈(NATIVE method stack) 程序计数器( program count register) (1)
执行引擎 本地方法接口 本地方法库
在这里 我对上面不做一一解释 可查看资料
我要说的是 jvm 虚拟机 (1) 中有个名字 运行的数据区 想必大家对这个运行数据区
什么叫运行数据区呢。 里面为什么这么分配呢 ?
你可以认为 以上 1 的内容其实是一块内存, 这个时候 我们大家都知道 Java 编译后生成的class. 字节文件
那么既然是编译好的字节文件。 里面肯定有方法 类变量了 实列化等等的内容。
那么作为我们的Java 虚拟机 既然是管理着这块内存 那我需要对你这个 class 文件给您分配空间让你 那些地方存什么样的数据合适
你可以想像家里面的柜子,放衣服就是放衣服。 衣服柜子隔间 。 在这里用衣服柜子说的不严谨。毕竟人的习惯不同 我想放啥你还能
管着我了。 那么我们还是加个限制了 衣服柜子规定了。每个隔间必须放这个东西。那么作为虚拟机的你,
你按照这个规则去放,去管理你的柜子里面的内容。
总结一下 虚拟机是管理一块内存。只不过在加载class文件的时候。我们把class的分类 把内存区划分了区域。存放不同的内容。
想想你的柜子。既然说到这里了也就是柜子 那 何为运行数据区呢? 其实你可以认为,我们在需要穿衣服的时候 我们需要去柜子 取衣服穿。这个时候 我们取衣服的动作 是在执行(执行引擎 )的。、
通俗的说把 在用的时候 你得保证这个东西存在在这个区域里面。 其实这个说法不严谨 。 希望牛人提出。