string的相關知識點

2022-08-10 23:12:25 字數 1353 閱讀 2570

string是c#中的類,string是framework的類,c# string 對映為 framework的 string。如果用string,編譯器會把它編譯成string。

string為空的定義方法

1、string str = null;只定義了乙個引用,未分配儲存空間。

2、string str = "";定義乙個指標,並在記憶體中劃分一塊值為空的儲存空間,指標指向這個空間。

3、string str = string.empty;定義乙個指標,並在記憶體中劃分一塊值為空的儲存空間,指標指向這個空間,但不會反覆的重複申請記憶體。

判斷string變數是否為空的方法

1、str == string.empty

2、str == ""

3、str.length == 0

效率:3>1>2

string的一些特性:

1、不可變性:( string會重複申請記憶體)

string是引用型別,當給string賦值時,會在堆中開闢一塊空間來存放string,在棧中存放string在堆中的位址。

在對string物件的例項進行操作時,並不是真的對這個string物件的例項進行修改,而是返回乙個新的string物件例項作為操作執行結果。    

若需要對string物件的例項進行頻繁的操作可以使用stringbuider

2、字串池(針對字串常量):

當程式中有多個相同的字串的常量時,這些字串都是指向記憶體中的同乙個字串。

如:srting str1 = "123";

string str2 = "123";

str1與str2所指向的記憶體儲存空間為同乙個。

3、字串留用:(intern)

string s1 = "a";

string s2 = "b";

string s3 = "c";

string s4 = s1+s2+s3;

string s5 = s1+s2+s3;

//雖然s4和s5這兩個字串中的內容一樣,但是在記憶體中是兩塊記憶體。

string x1="a";

string x2="bc";

string s4=string.intern(s1+s2+s3);

string s5=string.isinterned(x1+x2);

//這個時候,s4和s5在堆中的位址就是一樣的。(字串留用)

string屬性:

length:        獲取字串的長度;

string操作:

stringbuilder的優越性:

不需要每次對字串操作都去分配記憶體空間,所以系統無需處理垃圾;當對字串進行多次操作的時候他的效率遠遠高於string

今天說說String相關知識點

如何實現以及特性 string類被final修飾,所以string不可被繼承,integer等等的包裝類都不可以被繼承。jdk1.8中,string底層使用final修飾的char陣列來儲存字串 private final char value jdk1.9之後,底層使用final修飾的byte陣列...

知識點備忘 String

substring 方法用於提取字串中介於兩個指定下標之間的字元 substring start,end 開始和結束的位置,從零開始的索引 引數 描述 start 必需。乙個非負的整數,規定要提取的子串的第乙個字元在 stringobject 中的位置。stop 可選。乙個非負的整數,比要提取的子串...

相關知識點

nweb inf uclasses uweb.xml ulib n 從httpservlet 繼承,重寫doget dopost方法 n部署web.xml n 只有乙個物件 n 第一次請求的時候被初始化,只一遍 n 初始化後先呼叫init 方法,只一遍 n 每個請求,呼叫一遍service serv...