近在上課時,講到final關鍵字時,有一個學生問了一個問題,感覺還是有一點迷惑性的,在這里,我們一起來探討下,先看代碼:
執行結果:
我們之前在上課時,講到final關鍵字時,一般都會強調final關鍵字修飾變量,表明該變量就變成了常量,不允許去修改其值。可是上面的例子中第三行,我們確實是使用final定義了一個常量j,為什么后面在第8行還可以修改j的值。
在這里,我查閱了一些資料,比較官方的描述是這樣的:final修飾的基本類型變量必須賦值,但是只能賦值一次(可以在聲明時顯示初始化賦值,或者在構造方法中初始化賦值,或者在初始化塊中初始化賦值)。
所以,上面的現象也就不難理解了。我們使用時注意下即可。