是不是每次面試被問到final修飾的有什么不同???
final修飾的類不可以被繼承、final修飾的變量不可以被改變、final修飾的即表示最終的、、、、、
那常量被聲明為final僅僅只是因為不可改變嗎???
!#!@!&#%……!@&#!*@!()@()!、、、、然后想半天說不出來個啥了o(* ̄︶ ̄*)o
畢竟這些東西寫的時候都是復制粘貼一把刷,別跟我說什么性能、原理、框架底層!老夫寫代碼就是復制粘貼一把刷,能爬就行!!!
但是每每面試的時候就是最蛋疼的時候了,平時用不到的總是被問的最多的,所以就得不停的學習平時工作用的不多的東西了;
既然要知道有什么不同的話,肯定得從開始一步一步看起,不然你只知道開始和結果,你也不知道為什么會這樣對不對,和我們平時改bug一樣的步驟;
初始化常量的時候,如果只是 static修飾的話,常量只會賦值一個默認值;
並不會開始就將你寫的值賦值給聲明的常量;
但是,你如果添加了final修飾的話,初始化常量賦值的時候就是你給的那個值了!
舉個例子:
例如:
public static int value = 123;
此時賦給value的值是0,不是123。
靜態常量(static final修飾的)則會直接賦值。比如下面這個:
public static final int value = 123;
此時賦給value的值是123。
