だから私はJavaを学んでおり、質問があります。タイプint
、boolean
、およびstring
は、おそらくfloat
を除いて、変数に関して必要なものすべてに適しているようです。数値に小数が必要な場合に使用できます。
私の質問は、long
、double
、byte
、char
などの他のタイプは通常の日常的なプログラミングで使用されていますか?これらを使用できる実用的なものは何ですか?それらは何のために存在しますか?
「ショート」の例外を除いて、これはおそらくスペースの浪費の少しですが、時には文字通り、彼らはすべてコースの馬です:
[*]たとえば、Pentiumアーキテクチャのホットスポットでは、f loatとdoubleの操作は通常、正確に同じ時間を要します (除算を除く)。
本当に理解しない限り、これらの型のメモリ使用量に行き詰まってはいけません。例えば:
明らかに、特定のAPI呼び出し(たとえば、何らかの理由で浮動小数点数を使用するCPU集約型ではないタスクのさまざまな呼び出し)があり、要求する型を渡すだけです...!
Stringはプリミティブ型ではないため、実際にはこのリストに属していません。
A Java intは32ビット、longは64ビットであるため、2 ^ 31より大きい整数を表現する必要がある場合、longは友達です。longの典型的な使用例、System.currentTimeMillis()を参照
バイトは8ビットであり、最新のハードウェアで最も小さいアドレス可能なエンティティであるため、ファイルからバイナリデータを読み取るときに必要です。
Doubleにはfloatの2倍のサイズがあるため、サイズや速度に制限がなく、floatに十分な容量がある場合を除き、通常はfloatではなくdoubleを使用します。
ショートは2バイト、16ビットです。私の意見では、これは最も必要なデータ型ではなく、実際のコードでは実際には見ていませんが、バイナリファイル形式の読み取りや低レベルのネットワークプロトコルの実行に役立つ可能性があります。たとえば、IPポート番号は16ビットです。
Charは単一の文字、つまり16ビットを表します。これはshortと同じサイズですが、shortは符号付き(-32768〜32767)で、charは符号なし(0〜65535)です。 (これは、IPポート番号がおそらくショートよりも文字としてより正確に表されることを意味しますが、これは文字の意図された範囲外にあるようです...)
これらの詳細に関する本当に信頼できるソースについては、 Java言語仕様 を参照してください。
Javaのプリミティブ型について here を見ることができます。
これらのタイプ間の主な関心事は、メモリ使用量です。たとえば、intは32ビットを使用し、byteは8ビットのみを使用します。
大きな構造(配列、行列など)で作業している場合、メモリ使用量を削減するために、使用している型をより適切に処理することを想像してください。
そのようなタイプにはいくつかの目的があると思います。
1)格納できる変数のサイズ(および符号)に制限を課します。
2)コードを少し明確にすることができます(たとえば、charを使用する場合、コードを読んでいる人は、コードに何を保存するかを知っています)。
3)メモリを節約できます。すべてが符号なしで256未満の大きな数の配列がある場合、intの配列を宣言した場合と比較して、バイトの配列として宣言して、メモリを節約できます。
4)格納する必要がある数値が2 ^ 32よりも大きく、非常に大きな浮動小数点数の場合はdoubleである場合、長い時間が必要です。
整数は、一般的に数値に使用する必要があります。
Doublesは、小数を表すために使用される基本的なデータ型です。
Stringsは基本的にどのデータ型も保持できますが、intを使用する方が簡単で、テキスト以外の文字列を使用すると混乱します。
Charsは、1つの文字のみを保持する場合に使用されますが、本質的には明確にするためだけです。
ショート、ロング、フロートは必要ないかもしれませんが、たとえば、サイズ1,00000の配列を作成する場合1,000未満の数字を保持するだけでよい場合は、スペースを節約するために、ショートパンツを使用します。
プリミティブデータ型は、すべての複雑なコレクションの基礎であるため必要です。
long、double、byteなどは、小さな整数(または何でも)が必要な場合に使用され、ヒープスペースを無駄にしません。
私たちの時代には十分なRAMがありますが、無駄にしないでください。
データベースとストリームの操作には「小さなもの」が必要です。