为了账号安全,请及时绑定邮箱和手机立即绑定

main 是有效的 Java 标识符吗?

main 是有效的 Java 标识符吗?

一只甜甜圈 2021-09-12 16:54:06
我的一个孩子在高中学习 Java 并在他的一项测试中得到了这个:以下哪个是 Java 中的有效标识符?一种。 123java湾 mainC。 java1234d. {abcee. )whoot他回答了b并弄错了。我看着这个问题,并认为这main 是一个有效的标识符,它应该是正确的。我们查看了标识符的 Java规范,它强化了这一点。我们还编写了一个示例程序,其中有一个名为 的变量main以及一个方法。他创建了一个书面反驳,其中包括 Java 文档参考、测试程序,但老师忽略了它并说答案仍然不正确。是main有效的标识符吗?
查看完整描述

3 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

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出于同样的原因,字符序列也是一个标识符。)


查看完整回答
反对 回复 2021-09-12
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

正如其他答案所述

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[]).


查看完整回答
反对 回复 2021-09-12
  • 3 回答
  • 0 关注
  • 364 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信