java中final與finally的使用介紹
final可以修飾類 ,成員變量,局部變量和方法。
1.final修飾成員變量
1.final成員變量的初始化
對(duì)于final修飾的變量,系統(tǒng)不會(huì)默認(rèn)初始化為0
fina變量初始化方式:
- 在定義的時(shí)候初始化
- final變量可以在初始化塊中初始化,不可以在靜態(tài)初始化塊中初始化。
- 靜態(tài)final變量可以在靜態(tài)初始化塊中初始化,不可以在初始化塊中初始化。
- fina變量還可以在構(gòu)造函數(shù)中初始化,但是靜態(tài)final變量不可以。
2.final修飾方法
當(dāng)final用來(lái)修飾方法時(shí),表示這個(gè)方法不可以被子類覆蓋。
3.final修飾類
final修飾的列不允許被繼承,編譯器在處理時(shí)把它的所有方法都當(dāng)作final的,因此final類比普通類擁有更高的效率。而由關(guān)鍵字abstract定義的抽象列含有必須由繼承自它的子類重載實(shí)現(xiàn)的抽象方法,因此無(wú)法同時(shí)用final和abstract來(lái)修飾同一個(gè)類。同樣的道理,final也不能用來(lái)修飾接口。final的類的方法都不能被重寫。但這并不表示final的類的屬性值也是不可改變的。要想做到final類的屬性值不可改變,必須給他增加final修飾符。
finally語(yǔ)句只能用于try/catch語(yǔ)句中,并且附帶著一個(gè)語(yǔ)句塊,表示這段語(yǔ)句最終總是被執(zhí)行。
public class Test {
public static void main(String[] args){
System.out.println(returnTest());//false
}
public static boolean returnTest(){
try{
return true;
}finally{
return false;
}
}
}
先計(jì)算return后面的表達(dá)式的值,將值臨時(shí)存儲(chǔ)起來(lái),然后計(jì)算finally里的return后的表達(dá)式值,算出后也會(huì)臨時(shí)存儲(chǔ),
此時(shí)就會(huì)把之前存儲(chǔ)的值給覆蓋掉。最后,回到前一個(gè)return處,從臨時(shí)存儲(chǔ)變量的地方把值拿出來(lái),返回。即得到了這樣的結(jié)果。
相關(guān)文章
SpringBoot集成Redis并調(diào)用Lua腳本的示例詳解
Redis 是一個(gè)高性能的內(nèi)存數(shù)據(jù)庫(kù),廣泛用于緩存、計(jì)數(shù)器、分布式鎖等場(chǎng)景,本文主要和大家詳細(xì)介紹了SpringBoot如何集成Redis并調(diào)用Lua腳本,需要的小伙伴可以了解下2025-07-07
Spring Boot假死診斷實(shí)戰(zhàn)記錄
這篇文章主要給大家介紹了關(guān)于Spring Boot假死診斷的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Springboot如何配置Scheduler定時(shí)器
這篇文章主要介紹了Springboot如何配置Scheduler定時(shí)器問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
SpringBoot整合mybatis使用Druid做連接池的方式
這篇文章主要介紹了SpringBoot整合mybatis使用Druid做連接池的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
SpringMVC?RESTFul實(shí)體類創(chuàng)建及環(huán)境搭建
這篇文章主要為大家介紹了SpringMVC?RESTFul實(shí)體類創(chuàng)建及環(huán)境搭建詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

