字符串文字

字符串文字提供了在 Java 源代码中表示字符串值的最便捷方式。字符串文字包括:

  • 开头的双引号(")字符。
  • 零个或多个其他字符既不是双引号也不是换行符。 (反斜杠(\)字符会改变后续字符的含义;请参阅文字中的转义序列 。)
  • 结束双引号字符。

例如:

"Hello world"   // A literal denoting an 11 character String
""              // A literal denoting an empty (zero length) String
"\""            // A literal denoting a String consisting of one 
                //     double quote character
"1\t2\t3\n"     // Another literal with escape sequences

请注意,单个字符串文字可能不会跨越多个源代码行。在文字的结束双引号之前发生换行(或源文件的结尾)是一个编译错误。例如:

"Jello world    // Compilation error (at the end of the line!)

长字符串

如果你需要一个太长而不适合在一条线上的字符串,那么表达它的传统方法是将它分成多个文字并使用连接运算符(+)来连接各个部分。例如

String typingPractice = "The quick brown fox " +
                        "jumped over " +
                        "the lazy dog"

像上面这样由字符串文字和+组成的表达式满足要求为常量表达式 。这意味着表达式将由编译器进行评估,并在运行时由单个 String 对象表示。

字符串文字的实习

当含有字符串文字类文件由 JVM 加载,相应 String 对象实习由运行时系统。这意味着在多个类中使用的字符串文字不会占用比在一个类中使用的字符串更多的空间。

有关实习和字符串池的更多信息,请参阅字符串主题中的字符串池和堆存储示例。