Java 中字串的不變性

2021-08-01 02:30:39 字數 744 閱讀 1650

string 物件建立後則不能被修改,是不可變的,所謂的修改其實是建立了新的物件,所指向的記憶體空間不同。如下所示:

執行結果:

結合上面的**,關於字串必須需要了解:

1、 通過 string s1="愛慕課"; 宣告了乙個字串物件, s1 存放了到字串物件的引用,在記憶體中的存放引用關係如下圖所示:

然後通過 s1="歡迎來到:"+s1; 改變了字串 s1 ,其實質是建立了新的字串物件,變數 s1 指向了新建立的字串物件,如下圖所示:

2、 一旦乙個字串在記憶體中建立,則這個字串將不可改變。如果需要乙個可以改變的字串,我們可以使用stringbuffer或者stringbuilder(後面章節中會講到)。

3、 每次 new 乙個字串就是產生乙個新的物件,即便兩個字串的內容相同,使用 」==」 比較時也為 」false」 ,如果只需比較內容是否相同,應使用 」equals()」 方法

到底什麼是字串的不變性?

string 型別是c 中使用最頻繁的型別,因此clr用專門的方法來處理 優化string,使得string雖然你是引用型別,但在表現上被.net優化為值型別。先看string的定義是 public sealed class string icomparable,icloneable,iconver...

C 中String型別的不變性

今天同事問了我乙個問題,如下 static void main string args public sealed class people public static void changestring string str public static void changepeople peop...

特徵提取之旋轉不變性和尺度不變性的通俗理解

特徵匹配 feature match 是計算機視覺中很多應用的基礎,比如說影象配準,攝像機跟蹤,三維重建,物體識別,人臉識別,所以花一些時間去深入理解這個概念是不為過的。本文希望通過一種通俗易懂的方式來闡述特徵匹配這個過程,以及在過程中遇到的一些問題。首先我通過幾張來指出什麼是特徵匹配,以及特徵匹配...