java中的final關(guān)鍵字詳解及實(shí)例
java中的final關(guān)鍵字詳解
final的作用隨著所修飾的類型而不同
1、final修飾類中的屬性或者變量
無(wú)論屬性是基本類型還是引用類型,final所起的作用都是變量里面存放的“值”不能變。
這個(gè)值,對(duì)于基本類型來(lái)說,變量里面放的就是實(shí)實(shí)在在的值,如1,“abc”等。
而引用類型變量里面放的是個(gè)地址,所以用final修飾引用類型變量指的是它里面的地址不能變,并不是說這個(gè)地址所指向的對(duì)象或數(shù)組的內(nèi)容不可以變,這個(gè)一定要注意。
例如:類中有一個(gè)屬性是final Person p=new Person("name"); 那么你不能對(duì)p進(jìn)行重新賦值,但是可以改變p里面屬性的值,p.setName('newName');
final修飾屬性,聲明變量時(shí)可以不賦值,而且一旦賦值就不能被修改了。對(duì)final屬性可以在三個(gè)地方賦值:聲明時(shí)、初始化塊中、構(gòu)造方法中??傊欢ㄒx值。
2、final修飾類中的方法
作用:可以被繼承,但繼承后不能被重寫。
3、final修飾類
作用:類不可以被繼承。
思考一個(gè)有趣的現(xiàn)象:
byte b1=1;
byte b2=3;
byte b3=b1+b2;//當(dāng)程序執(zhí)行到這一行的時(shí)候會(huì)出錯(cuò),
因?yàn)閎1、b2可以自動(dòng)轉(zhuǎn)換成int類型的變量,運(yùn)算時(shí)Java虛擬機(jī)對(duì)它進(jìn)行了轉(zhuǎn)換,結(jié)果導(dǎo)致把一個(gè)int賦值給byte-----出錯(cuò)
如果對(duì)b1 b2加上final就不會(huì)出錯(cuò)
final byte b1=1;
final byte b2=3;
byte b3=b1+b2;//不會(huì)出錯(cuò),相信你看了上面的解釋就知道原因了。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
spring?boot教程之建立第一個(gè)HelloWorld
這篇文章主要介紹了spring?boot教程之建立第一個(gè)HelloWorld的相關(guān)資料,需要的朋友可以參考下2022-08-08
SpringBoot yaml語(yǔ)法與JRS303校驗(yàn)超詳細(xì)講解
YAML 是 “YAML Ain’t Markup Language”(YAML 不是一種標(biāo)記語(yǔ)言)的遞歸縮寫。在開發(fā)的這種語(yǔ)言時(shí),YAML 的意思其實(shí)是:“Yet Another Markup Language”(仍是一種標(biāo)記語(yǔ)言),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10
詳解spring boot實(shí)現(xiàn)多數(shù)據(jù)源代碼實(shí)戰(zhàn)
本篇文章主要介紹了詳解spring boot實(shí)現(xiàn)多數(shù)據(jù)源代碼實(shí)戰(zhàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-07-07
Spring?Boot使用線程池處理上萬(wàn)條數(shù)據(jù)插入功能
這篇文章主要介紹了Spring?Boot使用線程池處理上萬(wàn)條數(shù)據(jù)插入功能,使用步驟是先創(chuàng)建一個(gè)線程池的配置,讓Spring Boot加載,用來(lái)定義如何創(chuàng)建一個(gè)ThreadPoolTaskExecutor,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-08-08
SpringBoot中利用AOP和攔截器實(shí)現(xiàn)自定義注解
本文將通過攔截器+AOP實(shí)現(xiàn)自定義注解,在這里攔截器充當(dāng)在指定注解處要執(zhí)行的方法,aop負(fù)責(zé)將攔截器的方法和要注解生效的地方做一個(gè)織入,感興趣的可以嘗試一下2022-06-06
Java類中this關(guān)鍵字與static關(guān)鍵字的用法解析
這篇文章主要介紹了Java類中this關(guān)鍵字與static關(guān)鍵字的用法解析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09

