黑马程序员技术交流社区

标题: 。。。。。。提问。。。。。。 [打印本页]

作者: 班志国    时间: 2012-10-14 07:27
标题: 。。。。。。提问。。。。。。
本帖最后由 班志国 于 2012-10-14 09:24 编辑

class B
{
      int i=8;
     public static void main(String[] args)
     {
           //我想知道这种情况i在那片内存(没new对象啊)
     }
}
作者: 王冬    时间: 2012-10-14 08:01
int i= 8 这里的i是一个指向int类型的引用,指向8这个字面值。这些字面值的数据,由于大小可知,生存期可知(这些字面值固定定义在某个程序块里面,程序块退出后,字段值就消失了),出于追求速度的原因,就存在于栈中。

作者: 王冬    时间: 2012-10-14 08:07
通过new方法创建类的对象放在堆中,创建后,栈中会创建类对象的引用(内存地址)。方法区存放所有的class和静态变量,其中存放的是整个程序中唯一的元素。


作者: 行如止水    时间: 2013-8-8 15:45
int i = 8;//这个是在静态变量区;
在main函数里的内容则要看你怎么定义了,在栈或者堆中!




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