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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

final+static

發(fā)布時間:2023/12/13 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 final+static 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

final

final關(guān)鍵字顧名思義代表“最后的”,意味著不能被更改。它的定義,可以概括地分為以下三點:

  • 被final修飾的類不能被繼承;
  • 被final修飾的方法不能被重寫;
  • 被final修飾的變量不能被改變。注:引用類型的變量,引用不可變,但是引用所指向的內(nèi)容是可變的
  • 如果一個方法被final修飾,那么在編譯階段,JVM會為其尋求內(nèi)聯(lián),即相當(dāng)于將該方法中的語句都添加到調(diào)用該方法的代碼中,去除這個方法。函數(shù)的調(diào)用是需要一定的開銷的:保護(hù)現(xiàn)場、建立堆棧、恢復(fù)現(xiàn)場等,對于一些代碼量不大,又頻繁調(diào)用的函數(shù)來說,時空的消耗都是很大的,所以內(nèi)聯(lián)有助于提升Java的效率。因此如果已經(jīng)確定某一個方法不會被繼承,就盡量用final來修飾。

    static

    static關(guān)鍵字同樣可以用于修飾類、方法和變量,但它修飾的類只能是內(nèi)部類,它所修飾的方法和變量可以稱為“靜態(tài)方法”、“靜態(tài)變量”,也可以稱為“類方法”、“類變量”,后一種稱呼顯然更貼近于它的實際含義。相對于“類方法”、“類變量”的是“實例方法”、“實例變量”,也就是沒有用關(guān)鍵字static修飾的方法和變量。一個類可以有很多對象(實例),對于非靜態(tài)變量,每個對象都擁有,而靜態(tài)變量,則是所有對象共有。

    • 靜態(tài)資源是獨立于類而存在的,所有實例共享,在類初始化的時候加載;
    • 非靜態(tài)資源是在new一個新對象的時候加載,即生成實例的時候。

    通過以上兩點,可以得出:
    當(dāng)類只進(jìn)行了初始化,還未產(chǎn)生實例的時候,非靜態(tài)資源是未被加載出來的,因而在靜態(tài)方法中引用非靜態(tài)資源是錯誤的
    當(dāng)父類子類都存在靜態(tài)資源和非靜態(tài)資源的時候,new第一個子類對象時,調(diào)用資源的順序是:父類靜態(tài)資源 -> 子類靜態(tài)資源 -> 父類構(gòu)造函數(shù) -> 子類構(gòu)造函數(shù)。由于靜態(tài) 資源初始化只需一次,new第二個子類對象時,調(diào)用資源的順序就是 父類構(gòu)造函數(shù) -> 子類構(gòu)造函數(shù)

    轉(zhuǎn)載于:https://www.cnblogs.com/sy130908/p/11429521.html

    總結(jié)

    以上是生活随笔為你收集整理的final+static的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。