web-dev-qa-db-ja.com

Javaの「char」と「String」の違い

私が学ぼうとしているJavaの本を読んでいますが、質問があります。変数タイプcharStringの違いは理解できません。たとえば、intshortには違いがあります。これは、メモリのバイト数とそれらが持っている数字の領域です。

しかし、charStringの違いは何ですか? charが( ')と "String"( ")を使用することを除いて。

PS:それは私の最初の「本当の」プログラミング言語です。 (学校では、プログラミングレッスンのために偽の言語を学びました。)

49
Android Girl

charは1文字です。 Stringはゼロ文字以上です。

charはプリミティブ型です。 Stringはクラスです。

char c = 'a';
String s = "Hi!";

charの単一引用符と、Stringの二重引用符に注意してください。

118
user207421

charは単一文字を意味します。 Javaでは、UTF-16文字です。 Stringは、文字の配列と考えることができます。

「Android」の文字列を想像してください。 'A', 'n', 'd', 'r', 'o', 'i'文字と'd'文字で構成されます。

charはJavaのプリミティブ型であり、Stringcharsの配列をカプセル化するクラスです。

18
Vladimir Ivanov

素人の用語では、charは文字であり、Stringは文字のコレクション(またはWord)です。 'はJavaでは違法であるため、"'Test'の区別は重要です。

charはプリミティブ型、Stringはクラスです

6
Andreas Wong

Javaに関連する疑問がある場合は、OracleのWebサイトでホストされているJavaチュートリアルドキュメントを読むことをお勧めします。

次のチュートリアルを実行することで、概念を明確に理解できます。

1
sultan.of.swing

文字は単一の文字を保持し、文字列は多くの文字を保持します。

0
Matthias

charはプリミティブ型であり、単一の文字を保持できます。

代わりにStringは参照型であるため、本格的なオブジェクトです。任意の数の文字を保持できます(内部では、Stringオブジェクトはchar配列に保存します)。

Javaのプリミティブ型には、速度とメモリフットプリントの点で利点があります。ただし、これらは実際のオブジェクトではないため、使用すると失われる可能性があります。ジェネリック型パラメーターとして使用することはできません。メソッドやフィールドを含めることはできません。

ただし、すべてのJavaプリミティブ型には対応する本格的なオブジェクトがあり、それらの間の変換はコンパイラーによって自動的に行われます(これはオートボクシングと呼ばれます)。

たとえば、次のことができます。

int i=12;
Integer l=i;

コンパイラは、intIntegerに変換します。

0
Andrea Parodi

charには1文字以外の文字(文字、数字、...)

char example = 'x';

文字列には、ゼロ文字または必要な数の文字を含めることができます

String example = "Here you can have anything";
0
Martin54

Charは単一のアルファベットで、Stringは文字のシーケンスです。 Charは、Stringがクラスであるプリミティブデータ型です。

0
Tanuj Verma