將字符串與「'和」「連接起來有什麼區別嗎?'。'之間的區別和「。」 in java
例如,之間有什麼區別:提前
String s = "hello" + "/" + "world";
和
String s = "hello" + '/' + "world";
感謝。
將字符串與「'和」「連接起來有什麼區別嗎?'。'之間的區別和「。」 in java
例如,之間有什麼區別:提前
String s = "hello" + "/" + "world";
和
String s = "hello" + '/' + "world";
感謝。
「。」是一個字符串,'。'是一個字符。
用雙引號括起來的文字"foo"
,是字符串,而單引號文字,例如, 'c'
,分別是字符。在連接行爲方面,不會有明顯的差異。
儘管如此,值得記住的是,字符串和字符在所有場景中都不可互換,並且不能有由多個字符組成的單引號字符串。
「。」是隻包含一個字符的字符串。 ''是一個角色。
將它們連接在一起後就沒有區別。
實際上有一個細微的差別,它追加字符比單字符字符串稍快。儘管這種差異非常小,但它確實無關緊要。 – Esko 2009-01-30 20:33:17
從理論上說,將字符添加到字符串更快 - Java 6似乎在封面下創建了StringBuffers,並且我記得在連接字符的Java Performance網站上讀取會稍微快一些。
''用於字符文字。因爲AR是不是字面字符
「OSC」 + 'AR' + 「雷耶斯」
:
所以你不能做到這一點。
在你的榜樣它並沒有太大的差別,因爲
'/'
是一個char文字和
"/"
是隻包含一個字符的字符串文字。
另外,你可以使用任何UTF字符與下面的語法
'\u3c00'
所以,你也可以使用:
"Osc" + '\u3c00' + "ar
添加一個char是不是添加一個字符串快約25%。常常這並不然而重要,例如
String s = "hello" + "/" + "world";
這是由編譯器變換爲一個字符串所以沒有字符串連接/追加將發生在在任何情況下運行時。
你可能會找到有用的下面的文章:
System.out.println('a'+'b'+'c');
> 294
System.out.println("a"+"b"+"c");
> abc
這裏發生的事情是,(焦炭)+(焦炭)=(INT )換句話說, 。使用「」來避免意外。
你可能只是考慮了JDK :-)
假設有兩個功能:
public static String concatString(String cs) {
return "hello" + cs + "world";
}
public static String concatChar(char cc) {
return "hello" + cc + "world";
}
字節碼的檢查後它歸結於兩個AbstractStringBuilder.append(String)與AbstractStringBuilder.append(char)。
這兩種方法都調用AbstractStringBuilder.expandCapacity(int))這將分配一個新的炭[]最終和System.arraycopy舊的內容第一個。
之後AbstractStringBuilder.append(char)只是必須把給定char數組中,而AbstractStringBuilder.append(String)必須檢查一些限制和要求String.getChars(int, int, char[], int)這確實另一System.arraycopy附加字符串。
char theLetterA ='A'; string myString =「a string」;
要迂腐,'\ n'是一個char可接受的值(儘管嚴格來說,這只是一個char,即使表示爲兩個)。 – 2009-01-30 20:53:08
*點頭* - 我主要試圖指出,這兩種引用是不可互換的,因爲它們在許多其他語言中。 – Rob 2009-01-30 21:19:39