将字符串与“'和”“连接起来有什么区别吗?'。'之间的区别和“。” 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