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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java高阶语法---final

發布時間:2023/12/2 java 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java高阶语法---final 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景:聽說final Java高階語法是挺進BAT必經之路。

?

final:

final關鍵字顧名思義就是最終不可改變的。

1、含義:final可以聲明成員變量、方法、類和本地變量;一旦將引用聲明為final,此引用將不再被改變,編譯器會檢查代碼,如果試圖將此變量再次初始化則編譯器會報告編譯錯誤。

2、方法:方法前使用final修飾則代表該方法不可被子類的方法重寫(private類型的方法默認是final類型的);如果認為一個方法的功能已經很perfect了,子類中不需要再做改變,大可聲明此方法為final類型的,因為final方法比非final類型的方法執行速度要快,前者在編譯的時候已經靜態綁定了,無需在運行時再動態綁定。

3、類:使用final修飾的類通常功能是perfect的,其不能被繼承。(Java中的final類,如:Integer、String、Boolean以及其他包裝類)這種不可改變類有很多好處,如:它們的對象是只讀的,可以在多線程環境下安全共享,不用額外的同步開銷等。

4、優勢:final關鍵字可提高性能,JVM和Java應用都會緩存final變量;final變量可以安全地在多線程環境下無需額外同步開銷實現共享;高效,使用final關鍵字JVM會對方法、變量及類進行優化,編譯器在遇到調用final方法時會轉入內嵌機制,大幅度提高了方法執行效率。

我擼了個小例子測試,同樣的代碼final類型的方法執行用368ms,非final類型的方法用了384ms,有圖有據。

FYI:

1 import lombok.extern.slf4j.Slf4j; 2 3 @Slf4j 4 public class TestFinal { 5 public static void main(String[] args) { 6 TestFinal.commomMethod(); 7 TestFinal.finalMethod(); 8 } 9 public static void commomMethod() { 10 long startTime = System.currentTimeMillis(); 11 int number = 100000000; 12 long amount = 0l; 13 for (int i = 0; i < number; i++) { 14 amount = amount + i; 15 } 16 log.info("commomMethod's amount is: "+amount); 17 long endTime = System.currentTimeMillis(); 18 log.info("commomMethod's amount spend time is: "+(endTime-startTime)+"ms"); 19 } 20 public final static void finalMethod() { 21 long startTime = System.currentTimeMillis(); 22 int number = 100000000; 23 long amount = 0l; 24 for (int i = 0; i < number; i++) { 25 amount = amount + i; 26 } 27 log.info("finalMethod's amount is: "+amount); 28 long endTime = System.currentTimeMillis(); 29 log.info("finalMethod‘s amount spend time is: "+(endTime-startTime)+"ms"); 30 } 31 }

執行結果:

- commomMethod's amount is: 4999999950000000
- commomMethod's amount spend time is: 384ms
- finalMethod's amount is: 4999999950000000
- finalMethod‘s amount spend time is: 368ms

?

轉載于:https://www.cnblogs.com/taojietaoge/p/10259437.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Java高阶语法---final的全部內容,希望文章能夠幫你解決所遇到的問題。

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