これがn00bの質問であることは知っていますが、JAVA0
との間の値を持つ変数を定義したいと思います。100
INTまたはBYTEをデータ型として使用できますが、どちらを使用するのが最適ですか。そして、なぜですか?(メリット?)
6 に答える
orはint
、byte
その範囲内の数値を格納するために機能します。
どちらが最適かは、目的によって異なります。
これらの数値を配列に多数格納する必要がある場合、は同じ長さの
byte[]
よりもスペースが少なくて済みます。int[]
(驚くべきことに) JVM がスタック フレーム/オブジェクト フレーム レイアウトを行う方法により、
byte
変数は ... と同じ量のスペースを必要とします。int
これらの値を使用して多くの演算などを行う場合は、
int
より便利ですbyte
。Java では、算術演算とビット演算によってオペランドが に自動的に昇格されるため、int
に代入する必要がある場合は型キャストbyte
を使用する必要があります。(byte)
技術的には、どちらも適切ではありません。小数部分を格納する必要がある場合は、浮動小数点数が必要です。
個人的には、リソースに制約のある問題(組み込みシステム、ビッグデータなど)に実際に直面していない限り、intを使用するとコードが少し明確になると主張します。良いスタイルとは、人に読みやすいことです。したがって、整数を使用していることを示すことは、時期尚早に最適化して、コードの将来のメンテナ(自分自身を含む)にその変数の真の性質について推測させるよりも理にかなっている可能性があります。
バイトデータ型を使用して、-128〜127の値を格納します
小数を使用0.00
したことがあるので、これは小数を許可することを意味すると思います。これを行う最良の方法は、浮動小数点型を使用することです:double
またはfloat
。
ただし、小数が不要で、数値が常に整数である場合は、またはのいずれかを使用できint
ますbyte
。バイトは+127までまたは-128までのすべてを保持でき、intよりもはるかに少ないスペースを占有します。
システムに32ビットintを使用するbyte
と、スペースの1/4を占めることになります。欠点は、バイトの演算を行うときに注意する必要があることです。バイトがオーバーフローし、範囲外になると予期しない結果が生じる可能性があります。
サウンドの作成や古いファイル形式の読み取りなどの基本的なIO機能を使用している場合、バイトは非常に貴重です。ただし、符号の規則に注意してください。負の値には上位ビットが設定されています。ただし、通常の数値計算を行うときは、必要に応じてより大きな値に簡単に拡張できるため、常にintを使用します。また、32ビットCPUは、速度コストを最小限に抑えます。大量に保管している場合のみです。
プリミティブ データ型の引用:
byte: byte データ型は、8 ビットの符号付き 2 の補数整数です。最小値は -128 で、最大値は 127 (両端を含む) です。バイト データ型は、メモリの節約が実際に重要な大規模な配列でメモリを節約するのに役立ちます。これらは、制限がコードを明確にするのに役立つ int の代わりに使用することもできます。変数の範囲が制限されているという事実は、ドキュメントの形式として役立ちます。
int: int データ型は、32 ビットの符号付き 2 の補数整数です。最小値は -2,147,483,648 で、最大値は 2,147,483,647 (包括的) です。整数値の場合、他のものを選択する理由 (上記のような) がない限り、通常、このデータ型がデフォルトの選択です。このデータ型は、プログラムが使用する数値に対して十分な大きさである可能性が高いですが、より広い範囲の値が必要な場合は、代わりに long を使用してください。
まあ、それはあなたが何をしているかに依存します...そのような青から、整数を宣言する標準的な方法であるため、 int を使用すると言います。ただし、メモリの最適化が必要な特定のことを行う場合は、その場合はバイトの方が優れている可能性があります。