当前位置: 首页 > 面试题库 >

为什么Java变量名称不能以数字开头?

皇甫雨石
2023-03-14
问题内容

在Java中,变量名以字母,货币字符($)等开头,但不以数字:、、或.

一个简单的问题:那是为什么?

为什么编译器不允许有变量声明,例如

int 7dfs;

问题答案:

因为Java语言规范是这样说的:

标识符字符:

JavaLetter {JavaLetterOrDigit}

所以-是的,标识符必须以字母开头;它不能以数字开头。

其背后的主要原因是:

  • 这就是大多数人所期望的
  • 当您限制标识符的“布局”时,它使 解析 源代码变得容易得多。例如,它减少了文字和变量名之间可能出现的歧义。


 类似资料:
  • 问题内容: 为什么在Java中(我不知道任何其他编程语言)标识符不能以数字开头,为什么也不允许以下声明? 问题答案: 通常,您将这种限制放入其中有两个原因: 用电子方式解析很痛苦。 对人类来说这是一个痛苦的解析。 考虑以下代码片段: 如果是合法标识符,那么末尾有哪个值?-3还是2?这是模棱两可的。 同时考虑: 最后有什么价值?这也是模棱两可的。 另外,以任何一种方式阅读都是很痛苦的。如果有人声明,

  • 问题内容: 这些变量分配按预期工作: 但是,这些分配的行为不同: 为什么与示例不同,为什么相同?我如何在类示例中做类似的事情?也就是说,复制对象,然后更改它的一部分(那不会影响我借用属性的对象)吗? 问题答案: 我没有看到有人通过复制对象而不是仅仅为同一对象分配新的引用来提供有关如何使这两种情况相同的详细信息。 这将为您提供:

  • 当我将数组对象命名为“name”时,类型会自动更改为“String”,而不是“array”。为什么? 导致铬(Mac):

  • 问题内容: 在Python中(至少在CPython 2.7.2实现中)属性访问的语法受到限制: 我的问题是双重的: 是否有根本原因禁止使用Python关键字属性名称(如中所述)? 是否/在哪里记录了上述对属性名称的限制? 在我的一个程序中这样做是很有意义的,而我对无法做到这一点感到有点失望(可以工作,但看起来并不那么简单)。 PS :问题显然是,并且是Python关键字。问题是, 为什么 禁止使用

  • 问题内容: 这是一个真正的初学者问题(我仍在学习Java基础知识)。 我可以(有点)理解为什么方法将返回而不是,或者为什么它们将接受List参数而不是ArrayList。如果对方法没有影响(即,如果不需要ArrayList中的特殊方法),则这将使该方法更加灵活,并且更易于调用者使用。其他集合类型(例如Set或Map)也是如此。 我不明白的是:创建这样的局部变量似乎是一种惯例: 虽然这种形式的频率较

  • 问题内容: 我是Java开发人员。如今,我正在学习strut,阅读教程时,我心中充满了好奇心 我知道这是一个非常简单的包声明,但是 该软件包名称片段经常出现在许多商业发行版中。现在我想知道这是什么意思?请澄清一下。 谢谢,抱歉,如果我无法澄清… 问题答案: 这只是一个名称空间定义,以避免类名的冲突。这是已建立的Java约定,其中名称空间相反由公司域限定。