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...