【发布时间】:2010-01-24 19:39:07
【问题描述】:
我在某处读到 Java 区分大小写。我一直无法确认这一点。是吗?如果有,为什么?
【问题讨论】:
标签: java case-sensitive
我在某处读到 Java 区分大小写。我一直无法确认这一点。是吗?如果有,为什么?
【问题讨论】:
标签: java case-sensitive
我在某处读到 Java 区分大小写。我无法确认这一点。
Java 源代码是区分大小写的,如果你的意思是这样的话。即Double 与double 的类型不同,您可以有两个不同且独立的变量myData 和mydata。
是吗?如果有,为什么?
区分大小写是大多数编程语言和环境中的规范,因为小写和大写字母在最低级别的表示方式不同。对于计算机来说,“a”和“A”是两个完全不同的东西,需要额外的工作才能让它表现得好像它们是一样的。
此外,一些语言对大小写有非常棘手的特殊规则,例如德语字母 ß 没有大写版本,通常大写为“SS” - 那么“weiß”和“WEISS”是否应该被认为在语法上相同?更糟糕的是土耳其语:它们有两个单独的字母 i,带点和不带点,每个字母都有自己的大写版本。所以在土耳其,“IMAGE”不是“image”的大写版本!这一点都不是无关紧要的,尤其是对于 Java,因为如果你愿意,你实际上可以在你的 Java 程序中使用所有这些字母作为标识符。
鉴于这一切,编程语言设计者会选择让语法区分大小写的简单解决方案是非常可以理解的。
【讨论】:
ß 而崩溃(尽管这是一个有趣的观点)。
是的,它区分大小写。之所以这样,是因为它继承了 C 语言。为了让这种语言更熟悉人们“当时”的习惯,他们将其保留为区分大小写。还有一个额外的优势,因为 Java 标识符几乎可以是任何 Unicode 字符。您不必担心单个字符是否可以大写。
例如,ß 是否应该等同于 ss?
【讨论】:
lowercase(U+00DF) 会导致ss?我敢肯定它只是s。
标识符区分大小写,因为排序规则是一个困难的、依赖于语言环境的问题。
【讨论】:
Java 区分大小写,因为它使用 C 风格的语法。区分大小写很有用,因为它可以让您根据大小写推断名称的含义。
例如,Java 类名的标准是将每个单词的首字母大写(Integer、PrintStream 等)。变量和方法名称的标准是第一个单词的首字母小写,所有其他首字母大写(number、println()、checkError() 等)。并且常量的标准是全大写加下划线(SOME_CONSTANT)。
虽然您不需要在代码中遵循这些规则(即使您违反了这些规则,它也会编译),但 Java 的内置代码遵循这些规则,所有主要的 Java 库也遵循这些规则。而且您的代码也确实应该遵循这些规则,因为它有助于其他开发人员在看到大写字母时推断其含义。
【讨论】:
这更多是一个技术决定。 Java 旨在独立于平台。公共 Java 类与文件系统中的包/类名一起存储。在非 Windows 平台中,文件名区分大小写。如果您不使用确切的案例来加载/运行该类,它将在那里失败。这种区分大小写的需求扩展到 Java 中的其他标识符(最终为命名约定等其他(但非技术)优势留出了空间)。
【讨论】:
编程语言是否应该区分大小写往往会在程序员之间产生分歧。不管争论如何,重要的是要记住 Java 区分大小写。 它只是意味着 Java 程序中字母的大小写很重要。例如,假设您决定创建名为“endLoop”、“Endloop”和“EnDlOoP”的三个变量。即使在英语中我们看到变量名表示相同的东西,Java 却没有。它将以不同的方式对待它们。
【讨论】:
是的。 Java 是区分大小写的,因为大多数编程语言都是!
【讨论】:
Java 编译器和解释器区分大小写,因此必须一致地大写。
HelloWorldApp 与 Helloworldapp 不同。
这种大小写敏感性反映了 Java 作为 C 和 C++ 的产物的传统。
【讨论】: