日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

final使用详解

發布時間:2025/3/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 final使用详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

final的使用及注意事項

final是一個可以修飾變量,方法,類的修飾符

final修飾的方法不能被重寫

final修飾的類不能被繼承

final修飾的變量為一個常量

final不能與abstract一起使用

注意:當final修飾一個變量時要么在聲明時就給該變量賦值,要么在該類的構造函數中給該變量賦值

例如 final int i=9;//這就是在聲明時就為變量賦值

局部內部類訪問局部變量時該局部變量必須被final修飾(原因看使用final后發生的優化)

final修飾的基本數據類型其值不可以改變

final修飾的引用數據類型,其指向是不可以改變的,但其指向的對象的內容是可以改變的

?

?

使用final的目的

一、 保證安全性,例如當一個方法被final修飾以后它就不能被重寫,那么在它的子類中是不可以覆蓋這個方法的,所以該方法在它的子類中安全性就得到了保證

二、 高效,在早期的JDK中若一個方法被final修飾時,當調用該方法時是直接使用方法的代碼來替換,省去了方法出棧入棧的過程,提高了效率,與C++中的內聯函數相似,現在的JDK好像提供了其他的優化方法

?

?

使用final后發生的一些優化

一、 final修飾變量后,在編譯時就直接把final對應的常量將變量替換,這也是局部內部類訪問局部變量時,該局部變量必須被final修飾的原因,當局部變量被final修飾時,局部內部類訪問該變量時會將該變量寫入該內部類中方法區中的常量池中,即使該局部變量出棧以后,該內部類依然可以找到該變量對應的值

例如 final int i=5;? 在編譯的時候就直接把程序中出現i變量的地方全部替換為5并存儲進常量池中。

內部類知識可以參考博客中內部類的章節

?

轉載于:https://www.cnblogs.com/zhaolei1996/p/10623406.html

總結

以上是生活随笔為你收集整理的final使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。