為什麼把String設計成不可更改的常量?

2021-10-22 03:59:23 字數 475 閱讀 1566

1.不可改變—執行效率高

2.因為string這個物件基本是被所有的類物件都會使用的到了,如果可以被複寫,就會很亂套,比如map的key ,如果是乙個string為key的話,string如果可以改變的話,你想想後果

3.執行效率可以這麼解釋,物件導向有乙個多型的性質,如果可以改變,就可以被複寫,子類如果複寫了某個方法,虛函式表就被用上了;如果是final型的,jvm就直接去用了,根本不用去虛函式表裡面找

4.從設計思想來解釋這個 為什麼要弄成final型別的

語言本身就是一種設計。任何設計思想都是會遵守一些既定的規則,這樣才能體現一致性。無論是人類語言,還是機器語言,都有它們的約束規則。

long, double, integer 之類的全都是final的 程式的基石是不可被改變的

5.也可以從安全的角度來解釋定義成final,

6.string被廣泛使用,避免多型的影響,或者他提供的函式已經非常的豐富了,你再去擴充套件有點多餘

String 為什麼要設計成不可變的

string不可變 string值儲存在常量池中。乙個已有字串 abcd 如果改變值成 abcedl 不是在原記憶體位址上修改資料,而是在常量池中查詢或生成這個新值,再把引用指向新值的位址,如圖 string 類本身是final的,不可以被繼承 string類內部通過private final ch...

String類為什麼被設計成不可變類

1.共享元素模式,也就是說 乙個系統中如果有多處用到了相同的乙個元素,那麼我們應該只儲存乙份此元素,而讓所有地方都引用這乙個元素。2.j a中string就是根據享元模式設計的,而那個儲存元素的地方就叫做 字串常量池 string pool public class public static vo...

String為什麼要設計成final

strings are constant their values cannot be changed after they are created.string buffers support mutable strings.because string objects are immutable...