有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

增量Java初始化变量增量

用另一个全局变量的增量初始化全局变量是否有风险

示例:

int a=0; 
int b=a++; 
int c=a++; 
int d=a++; 

这应该输出:

0,1,2,3

编译器可能会先读取一个全局值,然后读取另一个全局值吗


共 (2) 个答案

  1. # 1 楼答案

    它将按预期运行。如果在定义字段之前尝试使用该字段,编译器将抛出错误:

    public class Foo {
        int a = b++; //compiler error here
        int b = 0;
    }
    

    这将在JLS 8.3中介绍

    对于您的情况,如果未修改变量的输出,则为:

    a = 3
    b = 0
    c = 1
    d = 2
    
  2. # 2 楼答案

    结果将是a=3, b=0, c=1, d=2

    如果所有这些变量都在一个类中声明,它们将按照代码中出现的顺序进行初始化

    PS:b = 0因为a++获取值,然后递增变量