string:字串,使用一對「」引起來表示
1.string宣告為final的,不可被繼承
2.string實現了serializable介面:表示字串是支援序列化的 實現了comparable介面:表示string可以比較大小
3.string內部定義了final char value 用於儲存字串資料
4.string:代表不可變的字串行。
簡稱:不可變性體現:
1.當對字串重新賦值時,需要重寫指定記憶體區域賦值,不能使用原有的value進行賦值
2.當對現有的字串進行連線操作時,也需要重行指定記憶體區域賦值,不能使用原有的value
3.當呼叫string的replace()方法修改指定字元或字串時,也需要重新指定記憶體區域
4.通過字面量的方式(區別於new)給乙個字串賦值,此時的字串值宣告在字串常量池中。
5.字串常量池中是不會儲存相同的內容的字串的。
@test
public
void
test1()
string的例項化方式:方式一:通過字面量定義的方式
方式二:通過new + 構造器的方式
面試題:string s = new string(「abc」);方式建立物件,在記憶體中建立了幾個物件?
兩個:乙個是堆空間new 結構,另乙個是char對應的常量池中的資料:「abc」
@test
public
void
test2()
底層儲存模型結論:1.常量與常量的拼接結果在常量池。且常量池中不會存在相同內容的常量
2.只要其中乙個是變數,結果就在堆中
3.如果拼接的結果呼叫intern()方法,返回值就在常量池中
常見的一些關於string的比較
@test
public
void
test3()
底層儲存模型
string物件的建立
string str =
"hello"
//本質上this.value = new char;
string s1 =
newstring()
; = string.original;
string s2 =
newstring
(string original)
; = arrays.copyof(value,value.length);
string s3 =
newstring
(char
a);string s4 =
newstring
(char
a ,int startindex,
int count)
;
public
class
stringexame
;public
void
change
(string str,
char ch)
public
static
void
main
(string[
] args)
}
深入理解String類
string類代表的就是字串,string類物件建立之後不可變。string str hello 方式1 string str2 newstring hello 方式2 char array 方式3 string str3 newstring array string str1 hello stri...
深入解析C 中的string類
一,c語言的字串 在c語言裡,對字串的處理一項都是一件比較痛苦的事情,因為通常在實現字串的操作的時候都會用到最不容易駕馭的型別 指標。比如下面這個例子 example 1 char str 12 hello char p str p h 改變第乙個字母 example 2 char ptr hell...
面試 手寫String類
include includeclass cmystring cmystring cmystring char pdata else 當cmystring cmtest2 cmtest1 時或cmystring cmtest2 cmtest1 時呼叫 cmystring cmystring cons...