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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 鱼饵 中级黑马   /  2015-5-7 21:48  /  335 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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是放在那里呢?

5 个回复

倒序浏览
变量都是放在内存中的
回复 使用道具 举报
栈内存吧!有时间再仔细看看内存分布的视频吧!!
回复 使用道具 举报
变量x指向的栈内存中
回复 使用道具 举报
x=x++是先预算x在自增,如果就有x++,就加完之后在运算
回复 使用道具 举报
yapo 发表于 2015-5-7 22:15
变量x指向的栈内存中

我分析的是x在栈中分配到了一块空间,然后把1放进去了,然后2放到那个空间去了。
因为输出的结果是1,就说明1在x的地址空间里面,一个地址空间不至于放俩数吧。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马