Java中用final修饰的变量

来源:互联网 发布:华彩人生一点通 mac 编辑:程序博客网 时间:2024/06/04 19:13

在Java中,用final修饰的变量只能赋值一次,之后不能再被重新赋值,而且被修饰的变量变成了常量。

public class Test {    public static void main(String[] args) {        int a = 1;        int b = 2;        int c = 1 + 2;        int d = a + b;    }}

对上面的代码编译之后的class文件进行反编译,结果如下:
这里写图片描述
编译器会对常量的运算进行优化,因此c=1+2在编译过后直接变成c=3,而d=a+b由于是两个变量相加,因此不会被优化。

将上述代码进行修改:

public class Test {    public static void main(String[] args) {        final int a = 1;        final int b = 2;        int c = 1 + 2;        int d = a + b;    }}

反编译之后结果为:
这里写图片描述
d=a+b被优化为了d=3,编译器认为被final修饰的变量a b是两个常量,因为它们不能被修改。

0 0