国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

final方法

2019-11-18 13:21:30
字體:
來源:轉載
供稿:網(wǎng)友

  之所以要使用final方法,可能是出于對兩方面理由的考慮。第一個是為方法“上鎖”,防止任何繼續(xù)類改變它的本來含義。設計程序時,若希望一個方法的行為在繼續(xù)期間保持不變,而且不可被覆蓋或改寫,就可以采取這種做法。
  
  采用final方法的第二個理由是程序執(zhí)行的效率。將一個方法設成final后,編譯器就可以把對那個方法的所有調用都置入“嵌入”調用里。只要編譯器發(fā)現(xiàn)一個final方法調用,就會(根據(jù)它自己的判定)忽略為執(zhí)行方法調用機制而采取的常規(guī)代碼插入方法(將自變量壓入堆棧;跳至方法代碼并執(zhí)行它;跳回來;清除堆棧自變量;最后對返回值進行處理)。相反,它會用方法主體內實際代碼的一個副本來替換方法調用。這樣做可避免方法調用時的系統(tǒng)開銷。當然,若方法體積太大,那么程序也會變得雍腫,可能受到到不到嵌入代碼所帶來的任何性能提升。因為任何提升都被花在方法內部的時間抵消了。java編譯器能自動偵測這些情況,并頗為“明智”地決定是否嵌入一個final方法。然而,最好還是不要完全相信編譯器能正確地作出所有判定。通常,只有在方法的代碼量非常少,或者想明確禁止方法被覆蓋的時候,才應考慮將一個方法設為final。
  
  類內所有PRivate方法都自動成為final。由于我們不能訪問一個private方法,所以它絕對不會被其他方法覆蓋(若強行這樣做,編譯器會給出錯誤提示)。可為一個private方法添加final指示符,但卻不能為那個方法提供任何額外的含義。

上一篇:final的注意事項

下一篇:多形性擴展性

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 株洲市| 临泉县| 湘西| 兴城市| 泸定县| 尚志市| 长乐市| 兴山县| 黄陵县| 民权县| 宝应县| 榆林市| 昌乐县| 敦化市| 固阳县| 宜州市| 淮南市| 万源市| 彩票| 青田县| 安达市| 靖西县| 长武县| 绥滨县| 长垣县| 夏河县| 香港| 奉贤区| 海盐县| 曲阳县| 江源县| 澳门| 霍山县| 常山县| 疏附县| 旅游| 罗江县| 铜山县| 莒南县| 那曲县| 达拉特旗|