热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

增量和减量静态变量不显示更新值

如何解决《增量和减量静态变量不显示更新值》经验,为你挑选了1个好方法。

我正在研究static关键字的使用,并发现如果一个变量被创建为static,那么它的一个副本就会被创建并在该类的所有对象之间共享.

但下面代码的输出让我感到困惑,为什么它没有显示递增的值.

public class Test {

    static int y = 10;

    public static void main(String[] args) {

        System.out.println(y);
        System.out.println(y+1);
        System.out.println(++y);
        System.out.println(y--);
    }

}

我期待输出为:

10
11
12
12

但实际输出是:

10
11
11
11

请帮我理解输出.



1> Stop ongoing..:

让我们回顾一下打印语句,看看会发生什么:

System.out.println(y);    // value of y is 10 -> print 10
System.out.println(y+1);  // value of y is still 10, but we print 10 + 1 -> print 11
System.out.println(++y);  // value of y becomes 11 before we print -> print 11
System.out.println(y--);  // value of y becomes 10 after we print -> print 11

这个问题与静态变量几乎没有关系. y可能是一个局部变量,行为将是完全相同的.

要理解第3和第4个语句,请阅读前缀运算符后缀运算符.


推荐阅读
author-avatar
毛云龙hei
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有