黑马程序员技术交流社区

标题: java的内存模型及结构 [打印本页]

作者: Always,    时间: 2015-5-20 10:52
标题: java的内存模型及结构
Java内存模型在JVM specification, Java SE 7 Edition, and mainly in the chapters “2.5 Runtime Data Areas” and “2.6 Frames”中有详细的说明。对象和类的数据存储在3个不同的内存区域:堆(heap space)、方法区(method area)、本地区(native area)。

堆内存存放对象以及数组的数据,方法区存放类的信息(包括类名、方法、字段)、静态变量、编译器编译后的代码,本地区包含线程栈、本地方法栈等存放线程
方法区有时被称为持久代(PermGen)。
所有的对象在实例化后的整个运行周期内,都被存放在堆内存中。堆内存又被划分成不同的部分:伊甸区(Eden),幸存者区域(Survivor Sapce),老年代(Old Generation Space)。

方法的执行都是伴随着线程的。原始类型的本地变量以及引用都存放在线程栈中。而引用关联的对象比如String,都存在在堆中。

作者: LoseMyCat    时间: 2015-5-20 11:35
我来补充一下,只有在HotSpot虚拟机中方法区才会称为永久代(PermGen),在J9、JRockit 等虚拟机中实际上没有永久代的概念。而且HotSpot也在逐渐摒弃永久代,采用动态内存分配的方式来管理方法区。
作者: guojiadui    时间: 2015-5-20 13:25
学习学习
作者: hellotaomi    时间: 2015-5-20 13:48
温故而知新也~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2