有关a++,++a的基础问题

今天跟朋友讨论java的赋值与自增问题

    @Test
    public void test2() {
        int a = 5;
        int b = a++;
        System.out.println("a = " + a);
        System.out.println("b = " + b);
    }

输出为:a = 6,b = 5

    @Test
    public void test2() {
        int a = 5;
        a = a++;
        System.out.println("a = " + a);
        /*System.out.println("b = " + b);*/
    }

输出为:a = 5

解释:a = a++;首先做a = a的操作,这时,后面的基本类型(整型)a已经丢失了,有新的(前面的)基本类型(整型) new Integer(a),这时候后面的基本类型(整型)a++没用了 ,而 b = a++  先做b = a  但是a没丢失  a++ 还有用,a = a  Java 自动分配新的栈内存给前面的a  也就是new Integer(a)

posted @ 2018-08-09 11:27  MichaelKai  阅读(137)  评论(0编辑  收藏  举报