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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 班志国 中级黑马   /  2012-10-14 07:27  /  2146 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 班志国 于 2012-10-14 09:24 编辑

class B
{
      int i=8;
     public static void main(String[] args)
     {
           //我想知道这种情况i在那片内存(没new对象啊)
     }
}

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

3 个回复

倒序浏览
int i= 8 这里的i是一个指向int类型的引用,指向8这个字面值。这些字面值的数据,由于大小可知,生存期可知(这些字面值固定定义在某个程序块里面,程序块退出后,字段值就消失了),出于追求速度的原因,就存在于栈中。
回复 使用道具 举报
通过new方法创建类的对象放在堆中,创建后,栈中会创建类对象的引用(内存地址)。方法区存放所有的class和静态变量,其中存放的是整个程序中唯一的元素。

回复 使用道具 举报
int i = 8;//这个是在静态变量区;
在main函数里的内容则要看你怎么定义了,在栈或者堆中!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马