char字面'\''与'''相同吗?(反斜杠 - 双引号vs双引号)

时间:2010-07-11 19:24:05

标签: java string char escaping

char文字'\"''"'之间是否存在差异?

1 个答案:

答案 0 :(得分:9)

绝对没有区别。这两个char==

System.out.println('\"' == '"'); // prints "true"

严格地说,没有必要在char字面值中转义双引号,但它不会改变\"表示双引号字符\u0022的事实。

参考


String analog

我们也有String文字的类似情况:

System.out.println("\'".equals("'")); // prints "true"

事实上,我们甚至可以更进一步,使用==来进行参考平等:

System.out.println("\'" == "'"); // prints "true"

第二个片段证明两个字符串文字确实相等,因此在编译时受到字符串实习的影响。

参考

  • JLS 3.10.5 String Literals
      

    字符串文字 - 或者更常见的是,作为常量表达式值的字符串 - “interned”,以便使用String.intern方法共享唯一的实例。< / p>

相关问题


摘要

  • char字面中的单引号必须转义
    • 因为char字面引用单引号
  • 要转义String字面必须中的双引号
    • 因为String字面引用了双引号
  • 即使没有必要,逃跑也没有伤害
    • 选择最具可读性的