java中的final關鍵字詳解及實例
java中的final關鍵字詳解
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)造方法中??傊欢ㄒx值。
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é)果導致把一個int賦值給byte-----出錯
如果對b1 b2加上final就不會出錯
final byte b1=1;
final byte b2=3;
byte b3=b1+b2;//不會出錯,相信你看了上面的解釋就知道原因了。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
SpringBoot yaml語法與JRS303校驗超詳細講解
YAML 是 “YAML Ain’t Markup Language”(YAML 不是一種標記語言)的遞歸縮寫。在開發(fā)的這種語言時,YAML 的意思其實是:“Yet Another Markup Language”(仍是一種標記語言),本文給大家介紹的非常詳細,需要的朋友可以參考下2022-10-10
詳解spring boot實現(xiàn)多數(shù)據(jù)源代碼實戰(zhàn)
本篇文章主要介紹了詳解spring boot實現(xiàn)多數(shù)據(jù)源代碼實戰(zhàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07
Spring?Boot使用線程池處理上萬條數(shù)據(jù)插入功能
這篇文章主要介紹了Spring?Boot使用線程池處理上萬條數(shù)據(jù)插入功能,使用步驟是先創(chuàng)建一個線程池的配置,讓Spring Boot加載,用來定義如何創(chuàng)建一個ThreadPoolTaskExecutor,本文通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧2022-08-08
SpringBoot中利用AOP和攔截器實現(xiàn)自定義注解
本文將通過攔截器+AOP實現(xiàn)自定義注解,在這里攔截器充當在指定注解處要執(zhí)行的方法,aop負責將攔截器的方法和要注解生效的地方做一個織入,感興趣的可以嘗試一下2022-06-06

