我的一个子元素在高中学习Java,在他的一次测试中:

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

a. 123java
b. main
c. java1234
d. {abce
e. )whoot

他回答了b,但答错了.

我看了看这个问题,认为mainis是一个有效的标识符,它应该是正确的.

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

main是有效的标识符吗?

推荐答案

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是标识符,而不是关键字或保留字.

relevant section of the JLS is 3.8名:

identifierJava lettersJava digits的无限长序列,其中第一个必须是Java letter.

标识符:

IdentifierChars,但不是关键字、BooleanLiteral或NullLiteral

识别卡:

JavaLetter{JavaletterOrdGit}

JavaLetter:

任何"Java字母"的Unicode字符

JavaLetterOrDigit:

我不支持任何"Java字母或数字"的Unicode字符

字符序列main符合上述描述,不在keyword list in Section 3.9中.

(出于同样的原因,字符序列java1234也是标识符.)

Java相关问答推荐

为什么接口中的主函数而不是类中的主函数在Java 17中编译和运行没有问题?

CSS应用于一个端点,但不应用于Thymeleaf中的另一个端点

填写文本字段后锁定PDF

Quarkus keycloat配置不工作.quarkus. keycloak. policy—enforcer. enable = true在. yaml表示中不工作

错误:在Liferay7.4中找不到符号导入com.liferay.portal.kernel.uuid.PortalUUID;";

滚动视图&不能在alert 对话框中工作(&Q;&Q;)

在Java Swing Paint应用程序中捕获快速鼠标移动时遇到困难

如何创建同一类的另一个对象,该对象位于变量中?

由于我在Main方法中关闭了 scanner ,但在该方法中创建了一个新的 scanner ,因此出现了错误

将Spring Boot 3.2.0升级到3.2.1后查询执行错误

在Spring Boot应用程序中,server.port=0的默认端口范围是多少?

使用SWIG将C++自定义单元类型转换为基本Java类型

在不使用instanceof或强制转换的情况下从父类变量调用子类方法

如何对存储为字符串的大数字数组进行排序?

如何使用Rascal Evaluator从编译的JAR访问Rascal函数?

如何通过gradle命令行从build.gradle获得Java targetCompatibility

人们在 IntelliJ 上将-Dhttp.proxyHost=your.proxy.net -Dhttp.proxyPort=8080放在哪里?

Swagger.io OpenApi v3.0 声明默认媒体类型

为什么方法接受协变类型的匿名泛型类对象?

for 循环中的第三条语句与主体中的第三条语句之间的区别