近在上课时,讲到final关键字时,有一个学生问了一个问题,感觉还是有一点迷惑性的,在这里,我们一起来探讨下,先看代码:
执行结果:
我们之前在上课时,讲到final关键字时,一般都会强调final关键字修饰变量,表明该变量就变成了常量,不允许去修改其值。可是上面的例子中第三行,我们确实是使用final定义了一个常量j,为什么后面在第8行还可以修改j的值。
在这里,我查阅了一些资料,比较官方的描述是这样的:final修饰的基本类型变量必须赋值,但是只能赋值一次(可以在声明时显示初始化赋值,或者在构造方法中初始化赋值,或者在初始化块中初始化赋值)。
所以,上面的现象也就不难理解了。我们使用时注意下即可。