第一行中的str
與第二行中引用的內容有什麼不同?字符串和字符數組之間的內存有什麼不同?
char[] str={'A','B','C'};
與
String str= new String("ABC");
第一行中的str
與第二行中引用的內容有什麼不同?字符串和字符數組之間的內存有什麼不同?
char[] str={'A','B','C'};
與
String str= new String("ABC");
一個是基元的陣列。
另一個是具有有用功能的完整對象。
以及簡單的講,
String str= new String("ABC");
字符串是一個不可變的對象(它的值不能改變)表示的字符序列。它有有用的字符串操作方法(indexOf,split等)
char str[]={'A','B','C'};
char數組就是這樣的:一個字符數組。它具有固定的長度,您可以根據需要更改其內容。它沒有任何字符串操作方法。
嗨Anurag在內存中沒有區別? –
字符串包含以下內容: char數組 - 因此是一個單獨的對象 - 包含實際字符; 一個整數偏移到字符串開始的數組中; 字符串的長度; 另一個int用於哈希碼的緩存計算。 所以假設它佔用比char數組更多的空間是非常安全的。 –
@ AbhishekV.Bajaj - 在天真的實現中,String對象包含一個長度字段,一個偏移量字段,一個散列值字段和一個對'char []'數組的引用。 char []數組是一個單獨的對象,可以與其他的String對象共享(例如,在子串操作的情況下)。 –
char str[]={'A','B','C'};
此字符的數組,它是三個元件長
String str= new String("ABC");
這是具有有用的方法,可以在它被稱爲String
對象。
如果問題答案的人解釋他們的推理,那將會很好。 –
這兩條語句有什麼相似? – Dancrumb
一個是字符串,另一個不是。 – Robin