A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 袁劲松 中级黑马   /  2014-1-9 22:21  /  1176 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

JAVA中静态变量和常量存储在哪个区,是堆还是栈

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

4 个回复

倒序浏览
全局/静态存储区,全局变量和静态变量被分配到同一块内存中
常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,是不允许修改的
回复 使用道具 举报
本帖最后由 november 于 2014-1-9 23:52 编辑

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


评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 渐渐不懂了 于 2014-1-10 08:33 编辑

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

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
JAVA数据存储跟C/C++有点差别。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马