Java初始化变量增量

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

例:

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

这应输出

0,1,2,3

编译器是否可以在另一个之前读取全局值?

解决方法

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

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

这在JLS 8.3中有所涉及

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

a = 3
b = 0
c = 1
d = 2

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...