在java中,为什么我可以声明一个名为"a"而不是"1"的变量?

Rav*_*pta 0 java variables declaration

我宣布一切都很好

String a;
Run Code Online (Sandbox Code Playgroud)

但它表示令牌"1"上的语法错误,当我这样做时,VariableDeclaratorId无效

String 1;
Run Code Online (Sandbox Code Playgroud)

这是为什么?

giz*_*zmo 24

嗯,首先,这是因为它是用Java语言规范编写的.

但是,也许这个例子可以帮助你更多:

String 1 = "toto"
System.out.println(1 + 2)
Run Code Online (Sandbox Code Playgroud)

输出应该是什么?


lau*_*ura 7

因为1它也是一个值(其中,您可以分配),解析器无法知道您的意思.

请考虑以下代码段:

int 1 = 10;
int a = 1; // what is the value of a ? 1 or 10?
Run Code Online (Sandbox Code Playgroud)

因此,不允许使用数字启动变量名称._1如果你真的想要你可以使用(注意虽然很难阅读)

  • 变量的后缀区分不同的值类型.例如,1L表示这是Long类型的值,而不是整数.或者0x ...表示后面有一个十六进制值. (3认同)