1.final成員:基本型別表示其值不可變,對於引用型別,表示不可改變被引用的物件,但被引用的物件的值是可以改變的。final成員可以出現為類的成員、方法引數和方法區域性變數
。(有個特殊情況是string,對於在堆上或者常量池中的string物件,是預設其值都是不可以修改的,但出現在棧上的string引用,如果不加final,則其可以改變引用的物件:string x = "abc" ;
x = "ade123" ;//正確。雖然string是不可更改的,但string引用如果沒加final,其可以指向另外的string物件。
finalstringt x = "abc";
x= "ade123";//錯誤 ,final 的string引用,不可以更改被引用的物件。
另外,虛擬機器是不支援方法引數和區域性變數的final的。這個只是在語言和編譯器的層次支援。
2.fianl方法:a.表示繼承類不能重寫此類。b.虛擬機器執行優化的時候,可以直接進行inline,可以進行優化。
3.final類。表示此類不能繼承。預設其所有方法都是final的。
關於final關鍵字
final只是表示引用不能變,不代表被引用的物件不能改變。例如 final stringbuffer sb new stringbuffer aa 這是可以的,他並沒有改變引用,只是改變引用的物件。sb new stringbuffer cc 這是不可以的,他試圖改變引用。final int a 1...
關於final關鍵字
注 概念 final關鍵字可以用來修飾類 方法和變數 包括成員變數和區域性變數 final修飾類時,表明這個類不能被繼承。final類中的所有成員方法都會被隱式地指定為final方法 注意 在使用final修飾類的時候,要注意謹慎選擇,除非這個類真的在以後不會用來繼承或者出於安全的考慮,盡量不要將類...
final關鍵字總結 JAVA
final表示 這是無法改變的 或 最終形態的 含義。它可以修飾非抽象類 非抽象類成員方法和變數。會有可能因為 設計或效率 而被使用。1.final類不能被繼承,沒有子類,final類中的方法預設是final的。2.final方法不能被子類的方法覆蓋,但可以被繼承。3.final成員變數表示常量,只...