char
文字 '\"'
和 '"'
之间有什么区别吗?
最佳答案
绝对没有区别。两个char
是==
。
System.out.println('\"' == '"'); // prints "true"
严格来说,没有必要在 char
文字中对双引号进行转义,但这并没有改变 \"
表示双引号字符 \u0022
.
引用资料
String
模拟
对于 String
字面值我们也有类似的情况:
System.out.println("\'".equals("'")); // prints "true"
事实上,我们甚至可以更进一步,使用==
来实现引用相等:
System.out.println("\'" == "'"); // prints "true"
第二个片段证明两个字符串文字确实相等,因此在编译时进行字符串驻留。
引用资料
- JLS 3.10.5 String Literals
String literals --or, more generally, strings that are the values of constant expressions-- are "interned" so as to share unique instances, using the method
String.intern
.
相关问题
- How do I compare strings in Java?
- Java
String.equals
versus==
- Where do Java and .NET string literals reside?
- When
“” == s
isfalse
but“”.equals( s )
istrue
总结
char
文字中的单引号必须 被转义- 因为
char
字面量用单引号引起来
- 因为
String
文字中的双引号必须 被转义- 因为
String
字面量是用双引号引起来的
- 因为
- 即使没有必要,逃跑也没什么坏处
- 选择最易读的内容
关于java - char 文字 '\"' 与 '"' 相同吗?(反斜杠双引号与仅双引号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3224337/