哪些声明是有效的?

18 浏览
0 Comments

哪些声明是有效的?

选择三个正确答案(有效声明)。\n(a) char a = \'\\u0061\';\n(b) char \'a\' = \'a\';\n(c) char \\u0061 = \'a\';\n(d) ch\\u0061r a = \'a\';\n(e) ch\'a\'r a = \'a\';\n答案:(a)、(c)和(d)\n书籍: \n

\n《Java SCJP认证程序员指南(第三版)》\n

\n有人可以解释一下为什么选项(c)和(d)会被IDE(IntelliJ IDEA)以红色显示,显示“无法解析符号\'u0063\'”的原因吗?\n\"As

0
0 Comments

问题的原因是在Java中,Unicode转义字符可以用来表示字符,例如\u0061表示字符a。因此,char \u0061 = 'a';char a = 'a';是相同的,ch\u0061r a = 'a';char a = 'a';也是相同的。

解决方法是,可以使用Unicode转义字符来声明变量,例如\u0061来代替a。这样可以增加代码的灵活性和可读性。

以下是有效的声明:

char \u0061 = 'a';

char a = 'a';

ch\u0061r a = 'a';

0
0 Comments

问题的原因是编译器可以识别Unicode转义并将其转换为UTF-16编码。通过\u0061转义可以得到一个有效的原始类型char,这使得选项D是正确的。

解决方法是将Unicode转义字符\u0061转换为有效的Java字母a,这样就可以用来构建标识符。这使得选项C是正确的。

文章整理如下:

编译器可以识别Unicode转义并将其转换为UTF-16编码。通过\u0061转义可以得到一个有效的原始类型char,这使得选项D是正确的。

\u0061将被转换为有效的Java字母a,可以用来构建标识符。这使得选项C是正确的。

0