真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaFinal與EffectivelyFinal-創(chuàng)新互聯(lián)

1. 介紹

Java 8 引入的眾多功能中,其中一個最有趣的功能是 effectively final。即不用 final 修飾符也能達(dá)到同樣的效果。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、滑縣網(wǎng)站維護(hù)、網(wǎng)站推廣。

本文將介紹該功能的起源以及編譯器處理 effectively final 與 final 關(guān)鍵字的不同之處。此外,還會通過一個 effectively final 變量的問題案例給出解決方案。

2. Effectively Final 的起源

簡而言之,如果對象或基礎(chǔ)類型的變量在初始化后值不發(fā)生改變,則可以把它們看做 effectively final。只要不改變對象引用,即使引用的對象發(fā)生狀態(tài)改變,該對象也是 effectively final。

在 Java 引入該功能之前,不能在匿名類中使用非 final 局部變量。此外,也不能在匿名類、內(nèi)部類和 lambda 表達(dá)式中多次賦值。新功能的加入節(jié)省了為 effectively final 變量輸入 final 關(guān)鍵字的工作。

匿名類是一種內(nèi)部類,不能訪問非 final 變量或 effectively final 變量,也無法按照 JLS 8.1.3 的規(guī)定在其封閉作用域內(nèi)的變量進(jìn)行修改。lambda 表達(dá)式也有類似的限制,修改變量可能會帶來并發(fā)問題。

docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.1.3

3. Final vs Effectively Final

要確認(rèn)一個 final 變量是不是 effectively final,最簡單的辦法就是刪除 final 關(guān)鍵字看能否編譯并運(yùn)行:

Java Final與Effectively Final

本文名稱:JavaFinal與EffectivelyFinal-創(chuàng)新互聯(lián)
文章起源:http://weahome.cn/article/ddehjo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部