web-dev-qa-db-ja.com

Java大文字と小文字は区別されますか?

Javaは大文字と小文字が区別されます。これを確認できませんでした。そうですか?そうであれば、なぜですか?

9
giri

Javaは大文字と小文字が区別されることをどこかで読みましたが、これを確認できませんでした。

つまり、Javaソースコードでは大文字と小文字が区別されます。つまり、Doubledoubleと同じタイプではなく、2つの異なる別個の変数myDatamydataを持つことができます。

それは...ですか?もしそうなら、なぜですか?

大文字と小文字の区別は、ほとんどのプログラミング言語と環境では標準です。これは、小文字と大文字の表現が最低レベルで異なるためです。コンピュータにとって、「a」と「A」はまったく異なるものであり、同じように動作させるには余分な作業が必要です。

さらに、一部の言語には、ケーシングに関して非常にトリッキーな特別なルールがあります。ドイツ語の文字ßには大文字のバージョンがなく、通常は「SS」に大文字で表記されます。したがって、「weiß」と「WEISS」は構文的に同一であると見なす必要がありますか?さらに悪いのはトルコ語です。ドット付きとドットなしの2つの別々の文字iがあり、それぞれに独自の大文字バージョンがあります。したがって、トルコでは、「IMAGE」はnot「image」の大文字バージョンです!また、必要に応じてJavaプログラムでこれらすべての文字を識別子として実際に使用できるため、これは特にJavaの場合はまったく関係ありません。

これらすべてに照らして、プログラミング言語の設計者が構文で大文字と小文字を区別するという単純なソリューションを選択することは非常に理解できます。

37

はい、大文字と小文字が区別されます。これは、Cからの遺産があるためです。言語を「その日」に慣れているものに慣れさせるために、大文字と小文字を区別するようにしました。 Java識別子はほとんどすべての nicode 文字にすることができるため、追加の利点があります。個々の文字を大文字にすることができるかどうかを心配する必要はありません。そうではありません。

たとえば、ßssと同等ですか?

12
Paul Wagland

照合はロケールに依存する難しい問題であるため、識別子では大文字と小文字が区別されます。

7
Tobu

Javaは、Cスタイルの構文を使用するため、大文字と小文字が区別されます。大文字と小文字の区別は、大文字と小文字に基づいて名前の意味を推測できるので便利です。

たとえば、Javaクラス名の標準は、各単語の最初の文字を大文字にしています(IntegerPrintStreamなど)。変数とメソッドの標準名前は最初の単語の最初の文字を小文字にし、他のすべての最初の文字を大文字にします(numberprintln()checkError()など)。定数の標準は次のとおりです。アンダースコア付きのすべて大文字(SOME_CONSTANT)。

コードでこれらのルールに従う必要はありませんが(これらのルールに違反してもコンパイルされます)、Javaの組み込みコードはそれらに従い、すべての主要なJavaライブラリも同様です)また、他の開発者が大文字の使用を確認したときに意味を推測するのに役立つため、コードも実際にはこれらのルールに従う必要があります。

7
Kaleb Brasee

これはもっと技術的な決定でした。 Javaは、プラットフォームに依存しないことを目的としています。パブリックJavaクラスは、パッケージ/クラス名とともにファイルシステムに格納されます。Windows以外のプラットフォームでは、ファイル名で大文字と小文字が区別されます。正確な大文字と小文字を使用してクラスをロード/実行しなかった場合は、そこでフェイルオーバーします。大文字と小文字を区別するこの必要性は、Java(最終的には命名規則のような他の(しかし技術的ではない)利点)。

6
BalusC

プログラミング言語で大文字と小文字を区別する必要があるかどうかは、プログラマーの間で意見が分かれる傾向があります。議論に関係なく、Javaは大文字と小文字を区別することを覚えておくことが重要です。これは、単にJavaプログラムの文字の大文字と小文字が重要であることを意味します。たとえば、 「endLoop」、「Endloop」、「EnDlOoP」という3つの変数を作成するとします。英語では変数名は同じことを言っているように見えますが、Javaではありません。それらすべてを異なる方法で扱います。

4
Norvik

はい。 Javaは、ほとんどのプログラミング言語が大文字と小文字を区別するため、大文字と小文字が区別されます。

2
Alex Baranosky

Javaコンパイラとインタプリタでは大文字と小文字が区別されるため、一貫して大文字にする必要があります。

HelloWorldAppはHelloworldappと同じではありません。

この大文字と小文字の区別は、CおよびC++の派生物としてのJavaの遺産を反映しています。

2
Mark R