黑马程序员技术交流社区

标题: 我知道结果,但不知道原因。 [打印本页]

作者: 鱼饵    时间: 2015-5-7 21:48
标题: 我知道结果,但不知道原因。
class Demo
{
    public static void main(String[] args)
    {
        int x=1;
        x=x++;
        System.out.pringln(x);
    }
}
这个程序已经简单的不行,我知道结果是1,x=x++; 就是先把1赋值给x,然后在执行x++,此时x是等于2的,我想问问这个2是放在那里呢?
作者: EnderDBluse    时间: 2015-5-7 21:56
变量都是放在内存中的
作者: 雾以泪聚丶    时间: 2015-5-7 22:05
栈内存吧!有时间再仔细看看内存分布的视频吧!!
作者: yapo    时间: 2015-5-7 22:15
变量x指向的栈内存中
作者: 大可乐    时间: 2015-5-7 22:24
x=x++是先预算x在自增,如果就有x++,就加完之后在运算
作者: 鱼饵    时间: 2015-5-7 22:31
yapo 发表于 2015-5-7 22:15
变量x指向的栈内存中

我分析的是x在栈中分配到了一块空间,然后把1放进去了,然后2放到那个空间去了。
因为输出的结果是1,就说明1在x的地址空间里面,一个地址空间不至于放俩数吧。




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