【问题标题】:Is Java case-sensitive? [closed]Java区分大小写吗? [关闭]
【发布时间】:2010-01-24 19:39:07
【问题描述】:

我在某处读到 Java 区分大小写。我一直无法确认这一点。是吗?如果有,为什么?

【问题讨论】:

    标签: java case-sensitive


    【解决方案1】:

    我在某处读到 Java 区分大小写。我无法确认这一点。

    Java 源代码是区分大小写的,如果你的意思是这样的话。即Doubledouble 的类型不同,您可以有两个不同且独立的变量myDatamydata

    是吗?如果有,为什么?

    区分大小写是大多数编程语言和环境中的规范,因为小写和大写字母在最低级别的表示方式不同。对于计算机来说,“a”和“A”是两个完全不同的东西,需要额外的工作才能让它表现得好像它们是一样的。

    此外,一些语言对大小写有非常棘手的特殊规则,例如德语字母 ß 没有大写版本,通常大写为“SS” - 那么“weiß”和“WEISS”是否应该被认为在语法上相同?更糟糕的是土耳其语:它们有两个单独的字母 i,带点和不带点,每个字母都有自己的大写版本。所以在土耳其,“IMAGE”不是“image”的大写版本!这一点都不是无关紧要的,尤其是对于 Java,因为如果你愿意,你实际上可以在你的 Java 程序中使用所有这些字母作为标识符。

    鉴于这一切,编程语言设计者会选择让语法区分大小写的简单解决方案是非常可以理解的。

    【讨论】:

    • 我认为不区分大小写的语言很容易存在,而不会出现您提到的问题。如果您允许程序中的标识符/变量/常量等仅由ASCII字符组成,那么问题将不再存在。此外,即使您是法国程序员,您也会用英语编写代码。您的代码必须被尽可能多的人理解。是的,其他特殊字符可以(并且将)存在于代码中的字符串中,但这是一个完全不同的问题。我并不是说应该切换到不区分大小写,我只是说这很容易。
    • 确实,HTML、CSS 和 SQL(以及因此 PL/SQL)作为不区分大小写的语言的示例出现在脑海中,它们似乎不会因为 ß 而崩溃(尽管这是一个有趣的观点)。
    【解决方案2】:

    是的,它区分大小写。之所以这样,是因为它继承了 C 语言。为了让这种语言更熟悉人们“当时”的习惯,他们将其保留为区分大小写。还有一个额外的优势,因为 Java 标识符几乎可以是任何 Unicode 字符。您不必担心单个字符是否可以大写。

    例如,ß 是否应该等同于 ss

    【讨论】:

    • 那是什么 Unicode 字符?
    • @Cole"Cole9"Johnson ß 拉丁小写字母夏普 S Unicode:U+00DF,UTF-8:C3 9F
    • 一个S,嗯?那为什么lowercase(U+00DF) 会导致ss?我敢肯定它只是s
    • 试试看我的评论。 Unicode U+00DF 不是 Unicode U+0053。后者是 S 前者是 ß。 S≠ß
    • 对不起。我不认为你理解我。您的评论听起来好像该字符被定义为小写到 ss
    【解决方案3】:

    标识符区分大小写,因为排序规则是一个困难的、依赖于语言环境的问题。

    【讨论】:

    • Unicode 排序规则定义了一个预排序,这意味着它定义了不区分大小写的比较。
    • 我的立场是正确的;对不起。我不能再改变投票了,尽管乔尔和杰夫认为讨论永远不会影响一个人的意见是个好主意。
    • 谢谢,我宁愿忽略正面强化的东西。
    【解决方案4】:

    Java 区分大小写,因为它使用 C 风格的语法。区分大小写很有用,因为它可以让您根据大小写推断名称的含义。

    例如,Java 类名的标准是将每个单词的首字母大写(IntegerPrintStream 等)。变量和方法名称的标准是第一个单词的首字母小写,所有其他首字母大写(numberprintln()checkError() 等)。并且常量的标准是全大写加下划线(SOME_CONSTANT)。

    虽然您不需要在代码中遵循这些规则(即使您违反了这些规则,它也会编译),但 Java 的内置代码遵循这些规则,所有主要的 Java 库也遵循这些规则。而且您的代码也确实应该遵循这些规则,因为它有助于其他开发人员在看到大写字母时推断其含义。

    【讨论】:

      【解决方案5】:

      这更多是一个技术决定。 Java 旨在独立于平台。公共 Java 类与文件系统中的包/类名一起存储。在非 Windows 平台中,文件名区分大小写。如果您不使用确切的案例来加载/运行该类,它将在那里失败。这种区分大小写的需求扩展到 Java 中的其他标识符(最终为命名约定等其他(但非技术)优势留出了空间)。

      【讨论】:

        【解决方案6】:

        编程语言是否应该区分大小写往往会在程序员之间产生分歧。不管争论如何,重要的是要记住 Java 区分大小写。 它只是意味着 Java 程序中字母的大小写很重要。例如,假设您决定创建名为“endLoop”、“Endloop”和“EnDlOoP”的三个变量。即使在英语中我们看到变量名表示相同的东西,Java 却没有。它将以不同的方式对待它们。

        【讨论】:

          【解决方案7】:

          是的。 Java 是区分大小写的,因为大多数编程语言都是!

          【讨论】:

          • 我会说这是一个很糟糕的解释。
          【解决方案8】:

          Java 编译器和解释器区分大小写,因此必须一致地大写。

          HelloWorldApp 与 Helloworldapp 不同。

          这种大小写敏感性反映了 Java 作为 C 和 C++ 的产物的传统。

          【讨论】:

            猜你喜欢
            • 2017-10-19
            • 1970-01-01
            • 1970-01-01
            • 2014-12-17
            • 1970-01-01
            • 2013-03-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多