char字面’\”与””相同吗?(反斜杠 – 双引号vs only-doublequote)
char
文字'\"'
和'"'
之间有什么区别吗?
绝对没有区别。 这两个char
是==
。
System.out.println('\"' == '"'); // prints "true"
严格来说,没有必要在char
字面值中转义双引号,但它并没有改变这个\"
表示双引号字符\u0022
。
参考
- JLS 3.10.6字符和字符串文字的转义序列
String
模拟
我们也有String
文字的类似情况:
System.out.println("\'".equals("'")); // prints "true"
事实上,我们甚至可以更进一步,使用==
作为参考平等:
System.out.println("\'" == "'"); // prints "true"
第二个片段certificate两个字符串文字实际上是相等的,因此在编译时受到字符串实习的影响。
参考
- JLS 3.10.5字符串文字
字符串文字 – 或者更常见的是,作为常量表达式值的字符串 – 被“实现”,以便使用
String.intern
方法共享唯一实例。
相关问题
- 如何比较Java中的字符串?
- Java
String.equals
与==
- Java和.NET字符串文字在哪里?
- 当
“” == s
为false
但“”.equals( s )
为true
概要
- 必须转义
char
字面中的单引号- 因为
char
literal以单引号引用
- 因为
-
String
文字中的双引号必须被转义- 因为
String
文字用双引号引用
- 因为
- 即使没有必要,逃跑也没有伤害
- 选择最具可读性的东西