黑马程序员技术交流社区

标题: JAVA内存分区问题 [打印本页]

作者: 袁劲松    时间: 2014-1-9 22:21
标题: JAVA内存分区问题
JAVA中静态变量和常量存储在哪个区,是堆还是栈
作者: 小悠久    时间: 2014-1-9 22:27
全局/静态存储区,全局变量和静态变量被分配到同一块内存中
常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,是不允许修改的
作者: november    时间: 2014-1-9 23:43
本帖最后由 november 于 2014-1-9 23:52 编辑

静态变量放在静态方法区里,是一个独立的区域,和堆.栈并列的。在类加载的时候只运行一次,而堆里是放对象的,栈一般放引用,和变量。而常量放在常量存储区而且常量通常被直接放置在程序代码当中.这是安全的,因为它们永远不能被改变。



作者: 渐渐不懂了    时间: 2014-1-10 08:32
本帖最后由 渐渐不懂了 于 2014-1-10 08:33 编辑

静态存储区是一块特殊的区域,当我们实例化一个类的时候,首先会创建静态的属性于静态存储区,之后会创建类所属的属性,就是你说的全局变量于栈中,
如果属性为8种基本数据类型,则栈中存放值,反之,栈中存放指向堆内存的地址

作者: xu6148152    时间: 2014-1-10 09:58
JAVA数据存储跟C/C++有点差别。




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