猿问

main 是有效的 Java 标识符吗?

我的一个孩子在高中学习 Java 并在他的一项测试中得到了这个:

以下哪个是 Java 中的有效标识符?

一种。 123java
湾 main
C。 java1234
d. {abce
e. )whoot

他回答了b并弄错了。

我看着这个问题,并认为这main 一个有效的标识符,它应该是正确的。

我们查看了标识符的 Java规范,它强化了这一点。我们还编写了一个示例程序,其中有一个名为 的变量main以及一个方法。他创建了一个书面反驳,其中包括 Java 文档参考、测试程序,但老师忽略了它并说答案仍然不正确。

main有效的标识符吗?


一只甜甜圈
浏览 365回答 3
3回答

慕桂英4014372

public class J {         public static void main(String[] args)     {         String main = "The character sequence \"main\" is an identifier, not a keyword or reserved word.";         System.out.println(main);     }}这将编译,并在执行时发出以下输出:The character sequence "main" is an identifier, not a keyword or reserved word.字符序列main是一个标识符,而不是关键字或保留字。JLS的相关部分是 3.8:一个标识符是无限长序列的Java字母和爪哇位,其中第一个必须是一个爪哇字母。标识符:    IdentifierChars 但不是关键字或 BooleanLiteral 或 NullLiteral标识符字符:    JavaLetter {JavaLetterOrDigit}Java信件:    任何作为“Java 字母”的 Unicode 字符JavaLetterOrDigit:    任何 Unicode 字符是“Java 字母或数字”字符序列main符合上述描述,不在3.9节的关键字列表中。(java1234出于同样的原因,字符序列也是一个标识符。)

斯蒂芬大帝

正如其他答案所述main是一个有效的 Java 标识符,以及java1234.我想令人困惑的原因是该main(String[])方法经常被 JVM 1用作入口点。但是,这并不意味着令牌main本身不能用作标识符2。规范是这样说的,以下声明也是有效的:一个领域:private int main;局部变量:String main = "";一个方法:void main() { ... }类或接口(尽管不鼓励以小写字母开头的类或接口名称):class main { ... }一袋:package main;1:正如评论中所指出的,JVM 规范本身并没有强制要求任何特定方法作为入口点,但广泛使用的java工具经常使用这种方法作为入口点。2:我通常会避免创建除main(String[]).
随时随地看视频慕课网APP

相关分类

Java
我要回答