私が学ぼうとしているJavaの本を読んでいますが、質問があります。変数タイプchar
とString
の違いは理解できません。たとえば、int
とshort
には違いがあります。これは、メモリのバイト数とそれらが持っている数字の領域です。
しかし、char
とString
の違いは何ですか? char
が( ')と "String"( ")を使用することを除いて。
PS:それは私の最初の「本当の」プログラミング言語です。 (学校では、プログラミングレッスンのために偽の言語を学びました。)
char
は1文字です。 String
はゼロ文字以上です。
char
はプリミティブ型です。 String
はクラスです。
char c = 'a';
String s = "Hi!";
char
の単一引用符と、String
の二重引用符に注意してください。
char
は単一文字を意味します。 Javaでは、UTF-16文字です。 String
は、文字の配列と考えることができます。
「Android」の文字列を想像してください。 'A', 'n', 'd', 'r', 'o', 'i'
文字と'd'
文字で構成されます。
char
はJavaのプリミティブ型であり、String
はchars
の配列をカプセル化するクラスです。
素人の用語では、char
は文字であり、String
は文字のコレクション(またはWord)です。 '
はJavaでは違法であるため、"
と'Test'
の区別は重要です。
char
はプリミティブ型、String
はクラスです
文字は単一の文字を保持し、文字列は多くの文字を保持します。
char
はプリミティブ型であり、単一の文字を保持できます。
代わりにString
は参照型であるため、本格的なオブジェクトです。任意の数の文字を保持できます(内部では、String
オブジェクトはchar
配列に保存します)。
Javaのプリミティブ型には、速度とメモリフットプリントの点で利点があります。ただし、これらは実際のオブジェクトではないため、使用すると失われる可能性があります。ジェネリック型パラメーターとして使用することはできません。メソッドやフィールドを含めることはできません。
ただし、すべてのJavaプリミティブ型には対応する本格的なオブジェクトがあり、それらの間の変換はコンパイラーによって自動的に行われます(これはオートボクシングと呼ばれます)。
たとえば、次のことができます。
int i=12;
Integer l=i;
コンパイラは、int
をInteger
に変換します。
charには1文字以外の文字(文字、数字、...)
char example = 'x';
文字列には、ゼロ文字または必要な数の文字を含めることができます
String example = "Here you can have anything";
Charは単一のアルファベットで、Stringは文字のシーケンスです。 Charは、Stringがクラスであるプリミティブデータ型です。