java中的最终变量打印

java中的最终变量打印,java,final,Java,Final,打印6而System.out.println(a++)或a=a+1然后s.o.p(a)将给出错误 当最终值无法更改时,为什么要打印6 同时a++和a=a+1为a分配一个新值 a+1没有:它的计算结果比a中的值多1 评估声明: final int a=5; System.out.println(a+1) 将显示a的值在前后相同。在“中间代码”中,用 A++或 A= A+ 1 < /C> >(明显地使 A /代码>非最终的第一个)将显示 < < /代码>被更改。 这应该不会比System.out.

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


当最终值无法更改时,为什么要打印6

同时
a++
a=a+1
a
分配一个新值

a+1
没有:它的计算结果比
a
中的值多1

评估声明:

final int a=5;
System.out.println(a+1)
将显示
a
的值在前后相同。在“中间代码”中,用<代码> A++<代码>或<代码> A= A+ 1 < /C> >(明显地使<代码> A /代码>非最终的第一个)将显示<代码> < < /代码>被更改。


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

因为在您的示例中从未修改
a
。打印
a+1的结果。如果以后打印一个,您将看到它仍然是
5

基本上是

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

不能更改最终变量的值。
int a = 5;
int b = a+1;
System.out.println(b); // prints 6
System.out.println(a); // still prints 5