Java中的最终变量打印

时间:2018-10-13 10:43:35

标签: java final

final int a=5;
System.out.println(a+1)

打印6,而System.out.println(a++)a=a+1然后s.o.p(a)会给出错误。

为什么不能更改最终值,为什么会打印6?

2 个答案:

答案 0 :(得分:1)

a++a=a+1都为a分配了一个新值。

a+1不会:它的求值仅比a中的值大1。

评估陈述:

System.out.println(a);
System.out.println(a+1);
System.out.println(a);

将显示a的值在前后都相同。对中间语句中的a++a=a+1进行同样的操作(显然使a首先是非最终的)将显示a已更改。

这不应该比System.out.println(5+1)打印6更令人惊讶,同时保持51的值不变。

答案 1 :(得分:0)

因为您从未修改示例中的a。您打印a+1的结果。如果之后打印,您会发现它仍然是5

基本上是

int a = 5;
int b = a+1;
System.out.println(b); // prints 6
System.out.println(a); // still prints 5