字符常量 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)
...

四个答案都采用的是双引号关闭,所以是字符串常量而不是字符常量。 

忽略这个错误,那么这题就没有答案,因为无论是采用特殊字符的转移序列' '还是采用八进制转义'101',都是满足Java语言规范中规定的字符常量格式。

原文地址:https://www.cnblogs.com/sunyubin/p/9721913.html