java中的final關(guān)鍵字詳解及實例
java中的final關(guān)鍵字詳解
final的作用隨著所修飾的類型而不同
1、final修飾類中的屬性或者變量
無論屬性是基本類型還是引用類型,final所起的作用都是變量里面存放的“值”不能變。
這個值,對于基本類型來說,變量里面放的就是實實在在的值,如1,“abc”等。
而引用類型變量里面放的是個地址,所以用final修飾引用類型變量指的是它里面的地址不能變,并不是說這個地址所指向的對象或數(shù)組的內(nèi)容不可以變,這個一定要注意。
例如:類中有一個屬性是final Person p=new Person("name"); 那么你不能對p進行重新賦值,但是可以改變p里面屬性的值,p.setName('newName');
final修飾屬性,聲明變量時可以不賦值,而且一旦賦值就不能被修改了。對final屬性可以在三個地方賦值:聲明時、初始化塊中、構(gòu)造方法中。總之一定要賦值。
2、final修飾類中的方法
作用:可以被繼承,但繼承后不能被重寫。
3、final修飾類
作用:類不可以被繼承。
思考一個有趣的現(xiàn)象:
byte b1=1; byte b2=3; byte b3=b1+b2;//當程序執(zhí)行到這一行的時候會出錯, 因為b1、b2可以自動轉(zhuǎn)換成int類型的變量,運算時Java虛擬機對它進行了轉(zhuǎn)換,結(jié)果導(dǎo)致把一個int賦值給byte-----出錯
如果對b1 b2加上final就不會出錯
final byte b1=1; final byte b2=3; byte b3=b1+b2;//不會出錯,相信你看了上面的解釋就知道原因了。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
解決mybatis使用char類型字段查詢oracle數(shù)據(jù)庫時結(jié)果返回null問題
這篇文章主要介紹了mybatis使用char類型字段查詢oracle數(shù)據(jù)庫時結(jié)果返回null問題的解決方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06一文詳解Java中的動態(tài)填充Html模版并轉(zhuǎn)PDF
在后端技術(shù)中,模板引擎和PDF生成工具是兩個非常重要的領(lǐng)域,Thymeleaf和wkhtmltopdf是這兩個領(lǐng)域的杰出代表,下面就來詳細介紹一下Thymeleaf和wkhtmltopdf的技術(shù)特點吧2023-12-12SpringBoot 配置文件加載位置與優(yōu)先級問題詳解
這篇文章主要介紹了SpringBoot 配置文件加載位置與優(yōu)先級問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09java 數(shù)據(jù)結(jié)構(gòu)之刪除鏈表中的元素實例代碼
這篇文章主要介紹了java 數(shù)據(jù)結(jié)構(gòu)之刪除鏈表中的元素實例代碼的相關(guān)資料,需要的朋友可以參考下2017-01-01SpringBoot實現(xiàn)接口的各種參數(shù)校驗的示例
本文主要介紹了SpringBoot實現(xiàn)接口的各種參數(shù)校驗的示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01