黑马程序员技术交流社区
标题: 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 |