java 中的static關(guān)鍵字和final關(guān)鍵字的不同之處
static
1.在類中,用static修飾的屬性,稱為靜態(tài)屬性。為這個(gè)類的所有對象所共有,存放在靜態(tài)存儲(chǔ)區(qū),所有該類的對象都可以訪問且訪問的都是同一變量。可以用作計(jì)數(shù)器,來統(tǒng)計(jì)總共創(chuàng)建了多少個(gè)各類的對象。
2.在類中,用static 修飾的方法為靜態(tài)方法,在靜態(tài)方法中不可以訪問非靜態(tài)的屬性和方法,但在非靜態(tài)方法中可以訪問靜態(tài)方法和屬性;且static方法多態(tài)失效,不能使用this。
3.由于靜態(tài)屬性和方法是屬于該類的所有對象的,所以可以用類名.靜態(tài)屬性/方法名---來訪問。
4.static 還可以修飾代碼塊,在類加載的時(shí)候被執(zhí)行1次,僅且一次。
final
(1)final標(biāo)記的類不能被繼承
final class T{}
class TT extends T{}//出錯(cuò),final類不能被繼承
(2)final標(biāo)記的方法不能被子類重寫
class T{
public final void function(){}
}
class TT extends T{
public void function(){}//出錯(cuò),final方法不能被子類重寫
}
(3)final標(biāo)記的局部變量為常量
final int x=10;
x=3//出錯(cuò),final標(biāo)記的局部變量為常量,不能被賦值
(4)final標(biāo)記的成員變量必須在聲明的同時(shí)賦值,或在該類的構(gòu)造方法中顯示賦值(實(shí)例變量沒有默認(rèn)值),然后才能使用。
如:
class Test{
final int x=10;//聲明并賦值
}
//或者
class Test{
final int x;
Test(){
x=10;
}
(5)方法中定義的內(nèi)置類只能訪問該方法內(nèi)的final類型的局部變量,用final定義的局部變量相當(dāng)于一個(gè)常量,它的生命周期長于方法運(yùn)行的生命周期。
(6)將一個(gè)形參定義成final也是可以的,這就限制了在方法中修改形參的值范圍。
java中有許多的類為final類型:String ,Math等等。
- 詳解Java編程中static關(guān)鍵字和final關(guān)鍵字的使用
- java多線程關(guān)鍵字final和static詳解
- Java中final、static關(guān)鍵字與方法的重寫和繼承易錯(cuò)點(diǎn)整理
- Java中的static和final關(guān)鍵字的使用詳解
- Java關(guān)鍵字final、static使用總結(jié)
- 學(xué)習(xí)Java的static與final關(guān)鍵字
- Java關(guān)鍵字詳解之final static this super的用法
- Java static 與 final關(guān)鍵字實(shí)例詳解
- Java中static與final關(guān)鍵字詳解(簡單易懂)
相關(guān)文章
java對象中什么時(shí)候適合用static修飾符踩坑解決記錄
這篇文章主要為大家介紹了java對象中什么時(shí)候適合用static修飾符踩坑解決記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
Java刪除ArrayList中的重復(fù)元素的兩種方法
在Java編程中,ArrayList是一種常用的集合類,它允許我們存儲(chǔ)一組元素,在某些情況下,我們可能需要移除其中重復(fù)的元素,只保留唯一的元素,下面介紹兩種常見的刪除ArrayList中重復(fù)元素的方法,需要的朋友可以參考下2024-12-12
Servlet第一個(gè)項(xiàng)目的發(fā)布(入門)
這篇文章主要介紹了Servlet第一個(gè)項(xiàng)目的發(fā)布,下面是用servlet實(shí)現(xiàn)的一個(gè)簡單的web項(xiàng)目,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2021-04-04
SpringBoot中使用websocket出現(xiàn)404的解決方法
在Springboot中使用websocket時(shí),本地開發(fā)環(huán)境可以正常運(yùn)行,但部署到服務(wù)器環(huán)境出現(xiàn)404問題,所以本文小編講給大家詳細(xì)介紹一下SpringBoot中使用websocket出現(xiàn)404的解決方法,需要的朋友可以參考下2023-09-09
Java8優(yōu)雅的字符串拼接工具類StringJoiner實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于Java8優(yōu)雅的字符串拼接工具類StringJoiner的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Springboot整合Mybatis傳值的常用方式總結(jié)
今天給大家?guī)淼氖顷P(guān)于Springboot的相關(guān)知識,文章圍繞著Springboot整合Mybatis傳值的常用方式展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
mybatis if test 不為空字符串或null的解決
這篇文章主要介紹了mybatis if test 不為空字符串或null的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
200行Java代碼如何實(shí)現(xiàn)依賴注入框架詳解
依賴注入對大家來說應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于利用200行Java代碼如何實(shí)現(xiàn)依賴注入框架的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05

