final网友讨论
| 網上看到以下內容: final方法 將方法聲明為final那有兩個原因, 第一就是說明 你已經知道這個方法提供的功能已經滿足你要求,不需要進行擴展, 并且也不允許任何從此類繼承的類來覆寫這個方法,但是繼承仍然可以繼承這個方法,也就是說可以直接使用。 第二就是允許編譯器將所有對此方法的調用轉化為inline(行內)調用的機制, 它會使你在調用final方法時,直接將方法主體插入到調用處,而不是進行例行的方法調用, 例如保存斷點,壓棧等,這樣可能會使你的程序效率有所提高,然而當你的方法主體非常龐大時,或你在多處調用此方法,那么你的調用主體代碼便會迅速膨脹,可能反而會影響效率, 所以你要慎用final進行方法定義。 final類 當你將final用于類身上時, 你就需要仔細考慮,因為一個final類是無法被任何人繼承的, 那也就意味著此類在一個繼承樹中是一個葉子類,并且此類的設計已被認為很完美而不需要進行修改或擴展。 對于final類中的成員,你可以定義其為final,也可以不是final。 而對于方法,由于所屬類為final的關系,自然也就成了final型的。 你也可以明確的給final類中的方法加上一個final,但這顯然沒有意義。 我想問的是 ? final類 ? 中的 ? 方法是不是一定是 ? final ? 方法啊??? 如果是 ? final方法的話,執行的時候就和上述的 ? final方法一樣,直接將方法主體插入到調用處,而不是進行例行的方法調。 ? ? ? ?
? ?
? ? 大前提已經是final ? 中間 ? final不final都一樣! ? ? 我的意思是: ? 如果final ? class ? 里面的方法和 ? final ? 方法類似的話, ? ?
? ? ? 樓主:我上面的不是說了嗎:“final方法是否一定會被轉化為“inline”方法,這是編譯器決定的,程序員不需要考慮。” ?
? ? core ? java中指出: ? ? ? Java的參數按值傳遞的,當然不能改變形參變量本身。 ? ? ? 牛人都說完了,我再補充一點哈,final形參的還有一個用途就是當一個內部局部類要調用形參的話,該形參必須為final,否則編譯錯誤。 |
總結
- 上一篇: 刷新系统托盘(清除死掉的图标)修正版
- 下一篇: 女生月薪4000什么水平 其实已经非