String為什麼是final

2021-09-21 18:05:37 字數 574 閱讀 1986

1. 可以快取 hash 值

因為 string 的 hash 值經常被使用,例如 string 用做 hashmap 的 key。不可變的特性可以使得 hash 值也不可變,因此只需要進行一次計算。

2. string pool 的需要

如果乙個 string 物件已經被建立過了,那麼就會從 string pool 中取得引用。只有 string 是不可變的,才可能使用 string pool。

3. 安全性

string 經常作為引數,string 不可變性可以保證引數不可變。例如在作為網路連線引數的情況下如果 string 是可變的,那麼在網路連線過程中,string 被改變,改變 string 物件的那一方以為現在連線的是其它主機,而實際情況卻不一定是。

4. 執行緒安全

string 不可變性天生具備執行緒安全,可以在多個執行緒中安全地使用。

String為什麼是Final的?

1 final的用途 string是被final修飾的類,其屬性value 是被final修飾的。所以string是不可被繼承的,value被儲存的資料不可更改性 引用位址不可更改,陣列本身可變 但是value是private修飾的,而且string是不可被繼承的,所以保證了字串不可變性 那麼為什麼...

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代表了被儲存的資料不可更改性。但...