字符常量 java
从Java语言的定义,ABCD都是错误的,4个都不是正确的字符常量。可以查阅《JLS8》中的描述:
A character literal is expressed as a character or an escape sequence,enclosed in ASCII single quotes.一个字符常量表示为一个字符或一个转义序列,被一对ASCII单引号关闭。
CharacterLiteral: ' SingleCharacter ' ' EscapeSequence ' SingleCharacter: InputCharacter but not ' or \
而转义序列包括:
EscapeSequence: \ b (backspace BS, Unicode \u0008) \ t (horizontal tab HT, Unicode \u0009) \ n (linefeed LF, Unicode \u000a) \ f (form feed FF, Unicode \u000c) \ r (carriage return CR, Unicode \u000d) \ " (double quote ", Unicode \u0022) \ ' (single quote ', Unicode \u0027) \ \ (backslash \, Unicode \u005c) OctalEscape (octal value, Unicode \u0000 to \u00ff) ...
四个答案都采用的是双引号关闭,所以是字符串常量而不是字符常量。
忽略这个错误,那么这题就没有答案,因为无论是采用特殊字符的转移序列'\n'还是采用八进制转义'\101',都是满足Java语言规范中规定的字符常量格式。