java final 变量只读_java final的使用总结
final 變量:是只讀的;
final 方法:是不能繼承或者重寫的。
final 引用:引用不能修改,但是對(duì)象本身的屬性可以修改;
final class:不可繼承;
final MyObject o = new MyObject();
o.setValue("foo"); // Works just fine
o = new MyObject(); // Doesn't work.
虛擬機(jī)并不會(huì)知道你的變量是否是final的,所以final與內(nèi)存泄露無關(guān)。
final不會(huì)讓代碼速度更快
1.final類
當(dāng)一個(gè)類聲明為final類,也就證明這個(gè)類是不能夠被繼承的,即禁止繼承,因此final類的成員方法是沒有機(jī)會(huì)被覆蓋的,這個(gè)final類的功能是完整的。在Java中有很多類是final的,如String、Interger以及其他包裝類。
final類的好處:不可變類有很多的好處,它們的對(duì)象是只讀的,可以在多線程環(huán)境下安全的共享,不用額外的開銷。
2.final方法
如果一個(gè)類不允許其子類覆蓋某個(gè)方法,即不能被重寫,則可以把這個(gè)方法聲明為final方法。(類中所有的private方法都隱式的指定為final)。
使用final方法的原因:
方法鎖定,防止任何繼承類修改它的含義,確保在繼承中使方法行為保持不變且不被覆蓋;
效率,將一個(gè)方法指明為final,就是同意編譯器將針對(duì)該方法的所有調(diào)用都轉(zhuǎn)化為內(nèi)嵌調(diào)用(相當(dāng)于在編譯的時(shí)候已經(jīng)靜態(tài)綁定,不需要在運(yùn)行時(shí)再動(dòng)態(tài)綁定)。
3.final變量
程序中有些數(shù)據(jù)的恒定不變是很有必要的,比如:
一個(gè)永不改變的編譯時(shí)常量;
一個(gè)在運(yùn)行時(shí)被初始化的值,而在程序的后面不希望它被改變。
這種類型的變量只能被賦值一次,一旦被賦值之后,就不能夠再更改了。
有幾點(diǎn)要注意的:
一個(gè)既是static又是final的域只占據(jù)一段不能改變的存儲(chǔ)空間,一般用大寫來表示;
final使數(shù)值恒定不變,而當(dāng)用于對(duì)象時(shí),final使引用恒定不變(一旦引用指向一個(gè)對(duì)象,就無法再把它改為指向另一個(gè)對(duì)象);
final變量的好處:
提高性能,JVM和Java應(yīng)用程序都會(huì)緩存final變量;
final變量可以在安全的在多線程環(huán)境下進(jìn)行共享,而不需要額外的開銷。
總結(jié)
以上是生活随笔為你收集整理的java final 变量只读_java final的使用总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql的存储过程和索引区别_mysq
- 下一篇: ❤️六W字《计算机基础知识》(七)(建议