String為什麼是Final的?

2021-09-13 16:02:22 字數 660 閱讀 1002

1、final的用途

string是被final修飾的類,其屬性value 是被final修飾的。所以string是不可被繼承的,value被儲存的資料不可更改性

(引用位址不可更改,陣列本身可變),但是value是private修飾的,而且string是不可被繼承的,所以保證了字串不可變性

那麼為什麼要保證string不可變呢?因為只有當字串不可變時,才能實現字串池。提高程式的效率。

因為字串是不可變的,所以是多執行緒安全的,同乙個字串例項可以被多個執行緒共享。這樣便不用因為執行緒安全問題而使用同步。字串自己便是執行緒安全的。

因為字串時不可變的,所以在它建立的時候hashcode就被快取了,不需要被重新計算。這就使得字串很適合做map的鍵,字串的處理速度快過其它的鍵物件。

總結:string為什麼時final修飾的

String為什麼是final

1.可以快取 hash 值 因為 string 的 hash 值經常被使用,例如 string 用做 hashmap 的 key。不可變的特性可以使得 hash 值也不可變,因此只需要進行一次計算。2.string pool 的需要 如果乙個 string 物件已經被建立過了,那麼就會從 strin...

String類為什麼是final的

首先我們使用new建立乙個string物件的時候比如 string str new string 123 這句話裡面建立了兩個物件,第乙個在系統中建立了乙個 abc 這個字串 然後在創乙個str物件,然後在讓 123 這個字串的引用 創乙個string物件相當於創了兩個。在說說為啥string類設定...

String類為什麼是final的

1.string的不可變性 比如第一次賦值 abc 第二次賦值 abcd 不是在原記憶體位址修改資料,而是重新指向乙個新位址 新物件 2.string為什麼不可變 開啟jdk原始碼 final修飾的string,代表了string的不可繼承性,final修飾的char代表了被儲存的資料不可更改性。但...